${VARIABLE}
.
En principe, Jenkins utilise le dépôt local Maven défini par Maven, par défaut ~/.m2/repository
ce qui peut être modifié par l'élément
<localRepository> dans le fichier ~/.m2/settings.xml
(voir Configurer son dépôt local))
Ce "en principe" signifie que toutes les constructions exécutées par un même agent partage un même dépôt Maven. L'avantage est le gain d'espace disque, l'inconvénient est que ce dépôt n'est pas prévu pour être multi thread, et peut donc être corrompu en cas de constructions concurrentes. De plus, les constructions peuvent interférer entre elles en partageant des livrables incorrects ou partiels. Il est par exemple possible d'aboutir à des constructions réussiées, simplement parce que toutes leurs dépendances sont dans le dépôt local, malgré le fait qu'elles ne soient pas dans les dépôts spécifiés dans le POM. repositories in POM might have them.
Avec cette option, Jenkins va configuration Maven pour qu'il utilise un dépôt local spécifique en utilisant l'option -Dmaven.repo.local
Si un chemin relatif est indiqué, il sera résolu par rapport à la racine de l'espace de travail et non par rapport au répertoire courant.
ie. si .repository
est indiqué, alors $WORKSPACE/.repository
sera utilisé.
Ceci signifie que chaque construction peut avoir son propre dépôt Maven local isolé. Ceci corrige les problèmes évoqués ci dessus, mais consomme plus d'espace disque.
Si vous utilisez cette option, envisagez l'utilisation d'un gestionnaire de livrable Maven, afin de limiter les appels aux dépôts distants.