Si je crée un travail Maven dans Jenkins ( Nouvel élément => Projet Maven , en utilisant le plugin maven) avec tous les paramètres par défaut et l'exécuter, j'obtiens cette erreur:
Started by user anonymous
Building on master in workspace /var/lib/jenkins/jobs/job_name/workspace
ERROR: A Maven installation needs to be available for this project to be built.Either your server has no Maven installations defined, or the requested Maven version does not exist.
Finished: FAILURE
Maven fonctionne parfaitement à partir de la ligne de commande avec juste mvn
.
Il existe une configuration Jenkins à l'échelle du système pour l'installation de Maven: Gérer Jenkins => Configurer le système => Maven / Installations Maven . Et si j'ajoute l'installation de Maven à l'aide de cette interface utilisateur Web (en fournissant un chemin préinstallé dans MAVEN_HOME
comme /usr/share/maven
), le travail s'exécute AVEC SUCCÈS.
La configuration globale de Jenkins n'a pas de sens: Maven est exécuté par esclave, pas par Jenkins.
Le zoo des esclaves où Jenkins exécute les travaux peut contenir des esclaves avec diverses plates-formes, systèmes d'exploitation et environnements dans lesquels différentes versions de Maven sont installées à différents emplacements.
Définition de variables d'environnement comme MAVEN_HOME
et M2_HOME
vers le même chemin pour l'ensemble du système sur le nœud esclave n'a pas fonctionné.
Jenkins Master et Slave sont des hôtes Linux. Version Jenkins: 1.598
En supposant que vous avez Java et Maven installés sur votre esclave:
Cela devrait maintenant fonctionner (même si vous avez configuré une installation Maven sur le maître).
Pour moi, la solution était d'aller dans Gérer Jenkins -> Configuration globale des outils, et d'y installer maven. Vous pouvez y accéder via/configureTools (ex: http: // votre-ip: 8080/jenkins/configureTools )
Exemple: installations Maven
Configurations supplémentaires pour d'autres outils courants sur/configureTools:
Installations Git
Installations JDK
Si vous n'ajoutez PAS Maven à la configuration principale et que vous l'installez simplement sur chaque esclave avec ses propres variables d'environnement éventuellement différentes (exemple avec la version 3.2.5)
M2_HOME=C:\Apache-maven-3.2.5
M2=C:\Apache-maven-3.2.5\bin
Path+=;C:\Apache-maven-3.2.5\bin
alors chaque esclave Jenkins utilisera simplement Maven avec les paramètres locaux.