Jenkinsfile error- java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法'withMaven'

时间:2017-11-01 05:48:36

标签: maven jenkins jenkins-pipeline

我目前正在尝试使用jenkinsfile在jenkins中实现管道,我正在Windows机器上执行maven项目。我正在jenkins创建一个管道工作,我已经在我的github存储库中检查了这个文件,当我在jenkins中运行这个工作时,我收到了以下错误。

我的jenkinsfile:

    pipeline {
        agent any
        stages {
            stage('Compile stage') {
                steps {
                    maven(maven : 'Maven_3.5.2'){
                        bat "mvn clean compile"
                }
            }
        }

             stage('testing stage') {
                 steps {
                    maven(maven : 'Maven_3.5.2'){
                        bat "mvn test"
                }
            }
        }

              stage('deployment stage') {
                  steps {
                    maven(maven : 'Maven_3.5.2'){
                        bat "mvn deploy"
                }
            }
        }

      }

    }

当我通过jenkins工作运行时,我得到以下错误 - 詹金斯错误:

  

java.lang.NoSuchMethodError:找不到“withMaven”这样的DSL方法   步骤[archive,bat,build,catchError,checkout,deleteDir,   dir,dockerFingerprintFrom,dockerFingerprintRun,echo,emailext,   emailextrecipients,envVarsForTool,error,fileExists,getContext,   git,input,isUnix,library,libraryResource,load,mail,milestone,   node,parallel,powershell,properties,pwd,readFile,readTrusted,   resolveScm,重试,脚本,sh,睡眠,阶段,藏匿,步骤,svn,   超时,时间戳,tm,工具,unarchive,unstash,   validateDeclarativePipeline,waitUntil,withContext,withCredentials,   withDockerContainer,withDockerRegistry,withDockerServer,withEnv,   wrap,writeFile,ws]或符号[all,allOf,always,ant,   antFromApache,antOutcome,antTarget,any,anyOf,apiToken,   架构,archiveArtifacts,artifactManager,authorizationMatrix,   batchFile,booleanParam,branch,

任何帮助?

5 个答案:

答案 0 :(得分:11)

这意味着您没有withMaven作为可用的DSL方法。大多数情况下,这意味着您没有安装插件。在这种情况下,需要Pipeline Maven插件。 https://wiki.jenkins.io/display/JENKINS/Pipeline+Maven+Plugin

答案 1 :(得分:2)

除了Rob Hales的回答之外,它在Jenkins ver中被称为“Pipeline Maven Integration Plugin”。 2.73.3或更高版本

答案 2 :(得分:1)

试试这个:

pipeline {

    agent any
    tools {
        maven 'Maven_3.5.2' 
    }
    stages {
        stage('Compile stage') {
            steps {
                bat "mvn clean compile" 
        }
    }

         stage('testing stage') {
             steps {
                bat "mvn test"
        }
    }

          stage('deployment stage') {
              steps {
                bat "mvn deploy"
        }
    }

  }

}

参考:https://jenkins.io/doc/book/pipeline/syntax/

答案 3 :(得分:0)

您需要安装所有列出的“管道”插件,错误不再存在。

答案 4 :(得分:0)

Jenkins中有两个免费的Maven集成插件。

有一个标准的Maven集成插件,它添加了Maven项目,以及Maven构建作业中的Maven构建功能的广泛列表。还有一个Pipeline Maven Integration插件,如果缺少该插件,则会导致此管道错误。

Maven集成管道插件

当开发人员安装了 Maven Integration 插件而不是 Pipeline Maven Integration 插件时,就会发生withMaven DSL error

NoSuchMethodError: No such DSL method 'withMaven' found among steps

enter image description here

只需安装正确的插件,然后重新运行Jenkins Maven构建作业。然后,Maven的构建作业应畅快运行。