web-dev-qa-db-fra.com

Jenkins: aucun outil nommé M3 trouvé

La configuration d'une génération de Pipeline dans Jenkins (Jenkins 2.7.2), la copie de l'exemple de script pour une génération basée sur git donne: "aucun outil nommé M3 trouvé". La ligne appropriée dans le script Pipeline est:

def mvnHome = tool 'M3'
10
hack_on

Vous devez avoir l'installation de Maven disponible pour faire des builds. Vous pouvez configurer en utilisant Global Tool Configuration et donnez le nom 'M3'

def mvnHome = tool 'M3'

Il indique que M3 est installé et attribue la valeur de retour au mvnHome

17
ravthiru

assurez-vous que l'installation de maven est configurée dans hudson.tasks.Maven.xml comme ci-dessous avec le nom que vous voulez (j'ai MAVEN3 au dessous de),

cat /var/lib/jenkins/hudson.tasks.Maven.xml

<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Maven_-DescriptorImpl>
  <installations>
    <hudson.tasks.Maven_-MavenInstallation>
      <name>MAVEN3</name>
      <home>/usr/share/Apache-maven/</home>
      <properties/>
    </hudson.tasks.Maven_-MavenInstallation>
  </installations>
</hudson.tasks.Maven_-DescriptorImpl>

Suivi du redémarrage de jenkins

systemctl restart jenkins.service

Il peut également être vérifié dans l'interface utilisateur,

maven installation name

Ensuite, la même variable peut être utilisée dans le script de pipeline.

node {
   def mvnHome
   stage('Preparation') {
      git url: 'https://github.com/prayagupd/eccount-rest.git', branch: 'REST-API-load-balancing'
      mvnHome = tool 'MAVEN3'
   }
   stage('Build') {
      sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean package"
   }
   stage('Results') {
      junit '**/target/surefire-reports/TEST-*.xml'
      archive 'target/*.jar'
   }
}
2
prayagupd