我有一个公司POM,它被定义为所有Maven项目的父项目。因此,企业pom在源路径上不可用,不能通过relativePath进行解析,必须通过Maven存储库进行解析。
在cmd行上运行mvn clean install,并在settings.xml中设置适当的存储库,Maven就能够成功地从Artifactory存储库解析公司POM。
在Jenkins中运行时,并为项目启用了“从Artifactory解析工件”,构建无法覆盖公司POM的工件解析,但会覆盖依赖项部分中的任何东西的工件解析。
下面是构建试图解析公司POM时的日志片段
解析酸盐
下载的工件http://host:8080/artifactory/sample-public//com/company/root/pom/1.0.1/pom-1.0.1.pom
(示例项目)$ /apps/sw/oracle/jrockit-x64/bin/java -Dm3plugin.lib=/apps/services/hudson-home/workspace/artifactory-plugin/2.0.4 -cp /apps/services/hudson-home/maven3-agent.jar:/apps/sw/apache/maven/maven3/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent. jar:/apps/sw/apache/maven/maven3 .agent. jar:/apps/sw/apache/maven/maven3 .agent. jarMaven3Main /apps/sw/apache/maven/maven3 /apps/services/hudson-home/slave.jar /apps/services/hudson-home/maven3- intercepator .jar 50937
下面是日志中工件解析正确工作的地方的一个片段
(信息)构建样例项目父1.0.0-S6-SNAPSHOT
(信息)------------------------------------------------------------------------
(调试)截获的工件下载事件:ARTIFACT_DOWNLOADING com.google.code.maven-svn-revision-number-plugin:maven-svn-revision-number-plugin:pom:1.6 @ mirrorId (http://host:8080/artifactory/sample-public/版本)
(调试)强制存储库URL:http://host:8080/artifactory/repohttp://artifact_downloads com.google.code.maven-svn-revision-number-plugin:maven-svn-revision-number-plugin:pom:1.6 @ mirrorId (http://host:8080/artifactory/sample-public/版本)
(调试)强制存储库身份验证:部署器为事件:artifact_downloads com.google.code.maven-svn-revision-number-plugin: pom:1.6 @ mirrorId (http://host:8080/artifactory/repo版本)
在上面的代码片段中,sample-public被定义为settings.xml中的一个mirrorOf *, repo被定义为用于工件解析的覆盖存储库。第一个代码片段通过sample-public解析父POM,而它应该通过repo解析它,因为解析存储库应该被覆盖。