J'ai deux emplois en cours dans Jenkins ont la configuration suivante
les paramètres globaux sont
quand ils courent, ils utilisent les commandes
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
Pourquoi utilisent-ils différents référentiels?
le travail 2 dépend d'un artefact produit par le travail 1.
Les référentiels locaux dépendent du fichier settings.xml de maven si vous ne le spécifiez pas séparément. Par défaut cela ressemble à ci-dessous:
<localRepository>${env.HOME}/.m2/repository</localRepository>
On dirait que vous avez différent settings.xml sur vos esclaves Jenkins.
Lorsque le référentiel maven local est défini sur Local to the executer
, le 1
dans -Dmaven.repo.local=/u01/jenkins/maven-repositories/1
fait référence à l'exécuteur dans lequel le travail est exécuté. Ainsi, si le travail s'exécute dans executer n, l'argument sera alors -Dmaven.repo.local=/u01/jenkins/maven-repositories/n
.
par défaut, je suppose que le référentiel utilisé pour chaque travail est:
**$HOME**/jobs/**JOB_NAME**/workspace
votre pom.xml devrait être situé à cet endroit.