java maven构建,jenkins不从本地获取jar。m2存储库
我有一份jenkins的工作,负责构建我的maven项目(比如项目a),它依赖于另一个本地项目(比如项目B)创建的jar。这个罐子在我的本地商店里。m2回购协议,但詹金斯未能在本地回购协议中找到它,并前往中环(https://repo.maven.apache.org/maven2)搜索它,显然它不会找到,因此我的工作失败了。在将此问题发布到此处之前,我已进行了以下检查:
- 依赖项目和独立项目中工件的版本匹配
- 当地人。我机器的m2存储库具有所需的依赖项jar版本
- 编写了一个单独的jenkins作业来构建项目B,它成功地构建了项目B,jar出现在。m2 Jenkins home的存储库以及路径是/var/lib/Jenkins/。m2(以防jenkins试图在自己的.m2存储库中找到这个罐子)
- 将Maven安装的Jenkins“全局工具配置”从手动(我已经手动设置了Maven home)更改为自动安装(版本3.3.9)。运气不好,问题还是一样李>
- maven设置未做任何更改。xml李>
- 如果我尝试在没有Jenkins的情况下使用
mvn clean install
手动构建项目,它将成功构建李>
所以,只有詹金斯让我无法完成这个项目
这是我的项目A的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.akamai</groupId>
<artifactId>cobra-tracer-api</artifactId>
<version>1.0.2</version>
<packaging>war</packaging>
<name>cobra-tracer</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<finalName>cobra-tracer</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
//some dependencies here
<dependency>
<groupId>com.akamai.aps</groupId>
<artifactId>logger-service</artifactId>
<version>0.0.2</version>
</dependency>
</dependencies>
</project>
B项目的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.akamai.aps</groupId>
<artifactId>logger-service</artifactId>
<version>0.0.3</version>
<packaging>jar</packaging>
<name>logger-service</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
# 1 楼答案
你把詹金斯和马文结合起来的方式是不正确的。你必须使用artifactory或nexus,它们都有足够好用的免费版本。您构建项目B并将其部署到上面的repository manager,项目A从repository manager下载它
对于您的具体问题,请查看
mvn install
运行了您的项目“B”。在项目“A”中,使用-U标志运行maven命令mvn -U install
李>mvn -s /home/jenkins/setting.xml install
。在jenkins项目配置中,可以选择定义不同的设置文件李>告诉我进展如何
由于您现在已经在工作流中添加了artifactory,并且面临插件未找到问题,请在您的设置中添加以下内容。xml
我假设您已经添加了存储库标签