詹金斯:没有找到名为M3的工具

hac*_*_on 10 maven jenkins jenkins-pipeline

在Jenkins(Jenkins 2.7.2)中设置Pipeline构建,复制基于git的构建的示例脚本给出:"找不到名为M3的工具".Pipeline脚本中的相关行是:

def mvnHome = tool 'M3'
Run Code Online (Sandbox Code Playgroud)

rav*_*iru 16

您需要使用Maven安装来进行构建.您可以配置使用Global Tool Configuration并命名为'M3'

def mvnHome = tool 'M3'
Run Code Online (Sandbox Code Playgroud)

它说M3已安装并将返回值分配给mvnHome


pra*_*upd 5

确保 maven 安装配置hudson.tasks.Maven.xml如下,并使用您想要的名称(我在MAVEN3下面),

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>
Run Code Online (Sandbox Code Playgroud)

紧接着jenkins重启

systemctl restart jenkins.service
Run Code Online (Sandbox Code Playgroud)

它也可以在 UI 中验证,

maven 安装名称

然后,可以在管道脚本中使用相同的变量。

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'
   }
}
Run Code Online (Sandbox Code Playgroud)