[英]Maven fails on Jenkins (Target repository cannot be empty) but not local
我有一个简单的maven项目,该项目可以在本地成功运行,但是在Jenkins上运行时却失败。
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example.abc.test</groupId>
<artifactId>dev-test</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>DEV-TEST</name>
<modules>
<module>dev-test-abc</module>
<module>dev-test-assemblies</module>
</modules>
<distributionManagement>
<repository>
<id>artifactory.example.org</id>
<name>artifactory.example.org-releases</name>
<url>http://artifactory.example.org:8081/artifactory/project-releases</url>
</repository>
<snapshotRepository>
<id>artifactory.example.org</id>
<name>artifactory.example.org-snapshots</name>
<url>http://artifactory.example.org:8081/artifactory/project-snapshots</url>
</snapshotRepository>
</distributionManagement>
<repositories>
<repository>
<id>artifactory</id>
<name>Artifactory maven repository</name>
<url>http://artifactory.example.org:8081/artifactory/repo</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>plugin-artifactory</id>
<name>Artifactory maven repository</name>
<url>http://artifactory.example.org:8081/artifactory/repo</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
我在Jenkins上使用mvn clean install
在本地运行,但使用maven插件失败。
在詹金斯,我得到了以下关注:
[INFO] DEV-TEST::ABC ......................... FAILURE [ 2.928 s]
[INFO] DEV-TEST::ASSEMBLIES .................. SKIPPED
[INFO] DEV-TEST .............................. SKIPPED
[INFO] ------------------------------------------------------------------------
... ... ...
[INFO] ------------------------------------------------------------------------
[ERROR] Internal error: java.lang.IllegalArgumentException: Target repository cannot be empty -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.IllegalArgumentException: Target repository cannot be empty
at org.apache.maven.lifecycle.internal.builder.BuilderCommon.handleBuildError(BuilderCommon.java:147)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:129)
故障模块的pom在这里:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.example.abc.test</groupId>
<artifactId>dev-test</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>dev-test-abc</artifactId>
<name>DEV-TEST::ABC</name>
<version>1.0.0-SNAPSHOT</version>
</project>
因为它在本地运行,所以我猜它与“ C:/users/USER/.m2/settings.xml”中的Maven设置有关,可能会导致该错误-可以移至项目pom使成功建立在詹金斯上成为可能?
需要注意的是:詹金斯大厦上的其他项目都取得了成功-因此我想POM中缺少这一点。
确保选择目标存储库,但是看起来缺少发布者标记。 您可以使用名为maven artifactory的插件,下面的链接提供了示例和指南:
检查Artifactory插件的版本。 参见: https : //www.jfrog.com/jira/browse/HAP-241
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.