Maven Jenkins多分支管道-mvn不被识别为命令

Maven Jenkins多分支管道-mvn不被识别为命令,maven,jenkins,jenkins-pipeline,multibranch-pipeline,Maven,Jenkins,Jenkins Pipeline,Multibranch Pipeline,我想为我的Spring Boot项目设置一个简单的多分支管道。我在Jenkins中创建了这样一个多分支管道,连接到我的GitHub repo中,我用一个简单的步骤推送了一个非常基本的Jenkins文件: pipeline { agent any stages { stage('Build with unit testing') { steps { bat 'mvn clean package' } } } } 然而,Jen

我想为我的Spring Boot项目设置一个简单的多分支管道。我在Jenkins中创建了这样一个多分支管道,连接到我的GitHub repo中,我用一个简单的步骤推送了一个非常基本的Jenkins文件:

pipeline {
agent any
stages {
    stage('Build with unit testing') {
        steps {
            bat 'mvn clean package'
        }
    }
}
}
然而,Jenkins似乎不理解mvn命令,因为我在构建中得到了以下消息:

“mvn”未被识别为内部或外部命令, 可操作的程序或批处理文件

在转到全局工具配置时,我尝试指定Maven安装,但不管我怎么做,此配置似乎不会持续(我添加Maven,单击应用/保存,走出并再次返回此屏幕,Maven部分再次为空,仅显示“Maven安装…”巴顿。我想这就是问题所在。我在某个地方读到过这是一个詹金斯错误?但我真的可以在我的詹金斯文件中解码关于如何解决这个问题的解决方案)

你们有什么克服这个问题的方法吗


谢谢

根据jenkins官方文档,您需要在工具部分声明maven:

pipeline {
    agent any
    tools {
        maven 'Maven 3.3.9'
        jdk 'jdk8'
    }
    stages {
        stage ('Initialize') {
            steps {
                sh '''
                    echo "PATH = ${PATH}"
                    echo "M2_HOME = ${M2_HOME}"
                '''
            }
        }

        stage ('Build') {
            steps {
                sh 'mvn clean package' 
            }
            post {
                success {
                    junit 'target/surefire-reports/**/*.xml' 
                }
            }
        }
    }
}
资料来源:

我认为您的电脑在windows中,因此请更改:

sh 'mvn clean package' 


另外,初始化步骤可以帮助您确定jenkins是否正确配置。

谢谢,根据文档,我没有意识到有必要在单独的部分中明确列出这些工具。这解决了问题,不客气。如果这有助于解决您的问题,请使用左侧的复选标记将其标记为已解决和/或向上投票。
bat 'mvn clean package'