web-dev-qa-db-fra.com

Existe-t-il un moyen de changer le répertoire de travail d’une compilation Jenkins Maven?

Existe-t-il un moyen de changer le répertoire de travail d’une compilation Jenkins Maven?

Cas d'utilisation

Il existe une version Maven qui ne fonctionnera que si le répertoire de travail actuel est le répertoire contenant pom.xml. Je souhaite donc que la version Maven s'exécute dans ce répertoire.

Le répertoire contenant le fichier pom.xml se trouve dans un sous-répertoire d'un projet git.

28
Max Nanasy

Créez une cible pour extraire le parent.

  • Commander le répertoire parent de votre cible de construction
  • Définir la construction -> Objectif = nettoyer
  • Exécutez build et déterminez le répertoire de travail cible (deuxième ligne de la sortie de la console, dans mon exemple/var/lib/jenkins/workspace/my_project)

Créez une cible pour construire votre chemin

  • NE PAS cocher "Supprimer l'espace de travail avant le début de la génération"
  • Dans Build -> Advanced - Cochez la case "Change folder of workspace" et collez votre/yourtargetdirectory

Cela a fonctionné pour moi.

12
ton

Je ne sais pas quand cela a été ajouté, mais pour le Jenkins devant moi (version de Jenkins 1.627 au bas de la page), il existe désormais une option permettant de définir l'emplacement du pom.xml racine (le message d'aide indique: 

Si votre espace de travail contient le fichier pom.xml de niveau supérieur ailleurs que Dans le répertoire racine du 1er module, spécifiez le chemin d'accès (par rapport à la racine du module .__), tel que parent/pom.xml. Si laissé vide, la valeur par défaut est pom.xml

). Je faisais face au même problème, mais je me suis rendu compte que la réponse me regardait dans les yeux (notez que je n'avais pas besoin de toucher avancé comme le suggérait Hua2308, probablement parce qu'ils avaient modifié l'interface utilisateur).

10
Foon

Pour référence, voici ce qui fonctionne pour moi. Dans l'étape de construction "Invoquer les cibles Maven de niveau supérieur", il existe un bouton "Avancé ...". Si vous cliquez sur ce bouton, vous pouvez spécifier le chemin relatif vers votre fichier POM.xml. Cela devrait vous assurer que vous ne construisez que le projet souhaité dans le sous-répertoire.

3
Hua2308

Vous pouvez utiliser l'option -f de Maven

-f,--file <arg>    Force the use of an alternate POM file (or directory with pom.xml).

Par exemple, si votre projet a une structure:

README.md
sources
|----pom.xml
|----services
|    |----pom.xml
|    +----src
|----webservices
|    |----pom.xml
|    +----src
+----....
useful
docs

alors vous pouvez utiliser Goals dans Invoke top-level Maven targets:

-f sources/pom.xml clean install
2
madhead

Accédez à la configuration de votre projet maven, puis:

Construire> cliquer sur le bouton "Avancé"> cocher "Utiliser un espace de travail personnalisé"> définir le répertoire

(J'utilise la version 1.508 de Jenkins)

1
tbrugz

Le Jenkins avec lequel nous travaillons est en allemand, j'essaie donc de deviner comment les options sont traduites.

Accédez à la configuration de votre projet et accédez à la configuration améliorée du projet (la deuxième section) et développez-la. Le dernier point devrait être quelque chose comme Change folder of workspace. Je pense que c'est peut-être ce que vous recherchez.

Sinon, vous pouvez toujours aller aux options Build et changer le chemin d'accès à votre pom.xml

0
André Stannek

Solution:

cd subfolder; mvn -f ../pom.xml task

Maven ne fournit pas d’option permettant de le faire à l’inverse, ce qui est judicieux pour ce cas d’utilisation, probablement parce que Maven vous déteste.

0
tkruse

Lorsque le sous-répertoire est un enfant direct de la racine parent, vous pouvez utiliser mvn --projects car celui-ci est remplacé par le sous-répertoire. Voici une preuve (voir dernière ligne):

U:\git\ics-VCCUSTOM-422>mvn --projects icsIntegrationTest clean verify
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< com.afklm.vccustom:icsIntegrationTest >----------------
[INFO] Building icsIntegrationTest 13.3.4-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ icsIntegrationTest ---
[INFO] Deleting U:\git\ics-VCCUSTOM-422\icsIntegrationTest\target
[INFO]
[INFO] --- buildnumber-maven-plugin:1.3:create (default) @ icsIntegrationTest ---
[INFO] ShortRevision tag detected. The value is '7'.
[INFO] Executing: cmd.exe /X /C "git rev-parse --verify --short=7 HEAD"
[INFO] Working directory: U:\git\ics-VCCUSTOM-422\icsIntegrationTest
0
Gert-Jan Paulissen