web-dev-qa-db-fra.com

Comment jenkins détermine-t-il le référentiel local à utiliser?

J'ai deux emplois en cours dans Jenkins ont la configuration suivante enter image description here

les paramètres globaux sont

enter image description here

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.

7
BevynQ

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.

7
Nancy

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.

9
BevynQ

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.

1
aorfevre