Maven在Jenkins上失败(目标存储库不能为空),但不是本地的

时间:2018-11-25 03:22:18

标签: java maven jenkins

我有一个简单的maven项目,该项目可以在本地成功运行,但是在Jenkins上运行时却失败。

pom.xml:

[!] Android toolchain - develop for Android devices (Android SDK 28.0.1)
    • Android SDK at C:\Users\marco\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    X Android license status unknown.

我在Jenkins上使用<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> 在本地运行,但使用Maven插件失败。

在詹金斯,我得到了关注:

mvn clean install

发生故障的模块的pom在这里:

[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)

因为它在本地运行,所以我猜它与“ C:/users/USER/.m2/settings.xml”中的Maven设置有关,可能会导致该错误-可以移至项目pom使成功在Jenkins上构建成为可能?

请注意:Jenkins大楼上的其他项目都取得了成功-因此我想POM中缺少这一点。

2 个答案:

答案 0 :(得分:0)

确保选择目标存储库,但是看起来缺少发布者标记。您可以使用名为 maven artifactory 的插件,下面的链接提供了示例和相关指南:

artifactory-maven-plugin-example-and-guide

答案 1 :(得分:0)

检查Artifactory插件的版本。 参见:https://www.jfrog.com/jira/browse/HAP-241