Jenkins Artifactory 插件:有没有办法指定替换 POM?
Jenkins Artifactory plugin: Is there a way to specify a replacement POM?
简短形式:在使用 Artifactory jenkins 插件部署 Maven 项目时,有没有办法告诉它为每个模块部署其各自的 ./target/pom.xml 而不是模块的原始 pom.xml?
我有一个 Maven 构建,其中包含构建 JAR 的父模块和一些子模块。各自的 POM 被大量参数化,因此我可以从 Jenkins 传递 project.version 并将其传递到子模块中,但是参数化的 POM 文件在提取 JAR 以用作依赖项时不起作用,因为 Maven 可以' 由于参数化而解析父项(<parent><version>${revision}</version></parent>
严重失败)。我能够使用每个模块中的资源插件在 ./target 中创建 POM 的过滤版本,所有参数都已解析,并且在我可以使用的每个子 POM 的 maven-install-plugin 中
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>./target/${project.artifactId}-${revision}.jar</file>
<pomFile>./target/pom.xml</pomFile>
</configuration>
</execution>
</executions>
它将我想要的安装到本地仓库。但是,我看不到一种方法可以在 Jenkins 插件中为部署目标定义类似的东西。有吗?
您是否尝试过组合 maven 插件以查看是否可行?
运行 生成填充的构建 ./target/pom.xml
即Maven exec 插件到:
- 将pom.xml复制到pom.xml.org
- 将 ./target/pom.xml 移动到 ./pom.xml
然后使用 artifactory jenkins 插件并填写 pom.xml
然后在您的 post-构建步骤中将 ./pom.xml.org 移回 ./pom.xml 以消除污染。
简短形式:在使用 Artifactory jenkins 插件部署 Maven 项目时,有没有办法告诉它为每个模块部署其各自的 ./target/pom.xml 而不是模块的原始 pom.xml?
我有一个 Maven 构建,其中包含构建 JAR 的父模块和一些子模块。各自的 POM 被大量参数化,因此我可以从 Jenkins 传递 project.version 并将其传递到子模块中,但是参数化的 POM 文件在提取 JAR 以用作依赖项时不起作用,因为 Maven 可以' 由于参数化而解析父项(<parent><version>${revision}</version></parent>
严重失败)。我能够使用每个模块中的资源插件在 ./target 中创建 POM 的过滤版本,所有参数都已解析,并且在我可以使用的每个子 POM 的 maven-install-plugin 中
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>./target/${project.artifactId}-${revision}.jar</file>
<pomFile>./target/pom.xml</pomFile>
</configuration>
</execution>
</executions>
它将我想要的安装到本地仓库。但是,我看不到一种方法可以在 Jenkins 插件中为部署目标定义类似的东西。有吗?
您是否尝试过组合 maven 插件以查看是否可行?
运行 生成填充的构建 ./target/pom.xml
即Maven exec 插件到:
- 将pom.xml复制到pom.xml.org
- 将 ./target/pom.xml 移动到 ./pom.xml
然后使用 artifactory jenkins 插件并填写 pom.xml
然后在您的 post-构建步骤中将 ./pom.xml.org 移回 ./pom.xml 以消除污染。