我有一个在项目上运行mvn clean verify
的Jenkins工作。但由于Shrinkwrap解析器无法解决2个依赖关系,因此某些集成测试失败。
Jenkins服务器和从属服务器位于内部网络中,不允许访问中央存储库。但我们有一个Nexus存储库,其中包含所有必需的软件包。
运行Jenkins作业时,它以 UNSTABLE 和两个失败的集成测试结束。这两条消息都是这样的:
2017年11月17日下午1:02:25 org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed WARNUNG:从https://repo.maven.apache.org/maven2/下载com / fasterxml / jackson / datatype / jackson-datatype-jsr310 / 2.7.4 / jackson-datatype-jsr310-2.7.4.pom失败。原因: org.eclipse.aether.transfer.ArtifactTransferException:无法传输工件com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 from / to central(https://repo.maven.apache.org/maven2):传输文件时出错:repo .maven.apache.org 2017年11月17日下午1:02:25 org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed WARNUNG:从http://repo1.maven.org/maven2/下载com / fasterxml / jackson / datatype / jackson-datatype-jsr310 / 2.7.4 / jackson-datatype-jsr310-2.7.4.pom失败。原因: org.eclipse.aether.transfer.ArtifactTransferException:无法传输工件com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 from / to central(http://repo1.maven.org/maven2):传输文件时出错:repo1 .maven.org
要解决此问题,我添加了一个预构建步骤来下载工件。日志显示已下载工件:
解决工件com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 已解决的工件com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 from central(,releases + snapshots)
我还手动检查:pom文件位于本地存储库中。
为什么它不能解决显然在本地存储库中的工件?
答案 0 :(得分:0)
最后我找到了办法。我提供settings.xml并将目标设置为" csettings.xml"。然后我将参数传递给构建目标和选项:"-Dorg.apache.maven.user-settings=$WORKSPACE/csettings.xml"
答案 1 :(得分:0)
另外,如果有人需要串联两个设置文件,可以通过设置全局设置和用户设置来完成
-Dorg.apache.maven.global-settings=global-settings.xml -Dorg.apache.maven.user-settings=user-settings.xml
对于我来说,这在Jenkins中很有用,它可以将配置存储在全局设置中,而将凭据存储在用户设置中则存储为机密。