我在jenkins中运行的两个作业都具有以下设置
全局设置
当他们跑步时,他们使用命令
Executing Maven: -B -f /u01/jenkins/jobs/job_1/workspace/pom.xml -Dmaven.repo.local=/u01/jenkins/maven-repositories/0 clean install
Executing Maven: -B -f /u01/jenkins/jobs/job_2/workspace/pom.xml -Dmaven.repo.local=/u01/jenkins/maven-repositories/1 clean install
为什么他们使用不同的存储库?
作业2取决于作业1产生的工件。
答案 0 :(得分:9)
当本地maven存储库设置为Local to the executer
时,1
中的-Dmaven.repo.local=/u01/jenkins/maven-repositories/1
指的是作业正在运行的执行者。因此,如果作业在执行者n中运行,那么参数将是-Dmaven.repo.local=/u01/jenkins/maven-repositories/n
。
答案 1 :(得分:7)
如果您没有单独指定,则本地存储库依赖于maven的settings.xml。默认情况下,它如下所示:
<localRepository>${env.HOME}/.m2/repository</localRepository>
似乎你的jenkins奴隶有不同的settings.xml。
答案 2 :(得分:1)
默认情况下,我假设用于每个作业的存储库是:
**$HOME**/jobs/**JOB_NAME**/workspace
你的pom.xml应该位于那里。