J'ai un travail Hudson qui exécute un objectif maven. Avant que cet objectif maven ne soit exécuté, j'ai ajouté une étape à exécuter avant le début de la construction, c'est un script shell qui obtient le numéro de version que je veux utiliser dans le champ 'Buts et options'.Utilisation d'une variable obtenue à l'aide d'une commande shell pré-build pour définir une option pour la génération Maven dans Hudson
Donc, dans ma configuration d'emploi, sous Build Environment J'ai vérifié le Configurer M2 supplémentaire Construire étapes boîte et a ajouté un script shell avant la construction. Le script ressemble à ceci:
export RELEASE={command to extract release version}
echo $RELEASE
Et puis sous la Construire section I point à mon 'pom racine'. Dans les objectifs et options Je veux donc être en mesure de faire quelque chose comme ceci:
-Dbuild.release.version=${RELEASE} deploy
Où build.release.version est une propriété de maven référencé dans le POM. Cependant, puisque le shell ne semble pas rendre ses variables globales, cela ne fonctionne pas. Des idées? Le seul que j'ai est d'installer le plugin Envfile et obtenir le script shell pour écrire la propriété RELEASE dans un fichier, puis obtenir le plugin pour lire le fichier, mais l'ordre dans lequel tout est exécuté peut causer des problèmes et il semble qu'il doit y avoir une façon plus simple ... est là?
Merci d'avance.
Salut, merci pour la réponse - j'ai essayé, mais obtenir l'erreur: bâtiment sur le maître [espace de travail] $/bin/sh c: \ DOCUME ~ 1 \ usr \ LOCALS ~ 1 \ Temp \ 1 \ hudson5860957589544318456 .sh FATAL: échec de l'exécution de la commande java.io.IOException: Impossible d'exécuter le programme "/ bin/sh" (dans le répertoire "E: \ hudson \ jobs \ MyJob \ workspace"): erreur CreateProcess = 3, le système ne trouve pas le chemin d'accès spécifié \t à java.lang.ProcessBuilder.start (ProcessBuilder.java:459) \t ... \t causés par: java.io.IOException: CreateProcess error = 3, le système ne peut pas trouver le chemin spécifié \t à java.lang.ProcessImpl.create (méthode native) \t ... Ran sur une boîte de Windows –
Pensez que je comprends maintenant- http://hudson.361315.n4.nabble.com/sh-in- cygwin-td368129.html –
Oui, ne fonctionne toujours pas. Utiliser la version 1.371 de Hudson –