jenkins如何确定使用哪个本地存储库?

时间:2014-06-08 23:16:54

标签: java maven jenkins

我在jenkins中运行的两个作业都具有以下设置enter image description here

全局设置

enter image description here

当他们跑步时,他们使用命令

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产生的工件。

3 个答案:

答案 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应该位于那里。