web-dev-qa-db-fra.com

Jenkinsfile error- Java.lang.NoSuchMethodError: Aucune méthode DSL de ce type 'withMaven' n'a été trouvée parmi les étapes.

J'essaie actuellement de mettre en place un pipeline dans Jenkins à l'aide de jenkinsfile et j'exécute un projet maven sur une machine Windows. Je crée un travail en pipeline dans Jenkins et j'ai archivé ce fichier dans mon référentiel github. Lorsque j'exécute le travail dans Jenkins, j'obtiens une erreur de suivi.

Mon 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"
                }
            }
        }

      }

    }

Je reçois une erreur ci-dessous lorsque je l'exécute via le travail de jenkins -- Erreur Jenkins: 

Java.lang.NoSuchMethodError: Aucune méthode DSL 'withMaven' n'a été trouvée parmi les étapes [archive, bat, build, catchError, checkout, deleteDir, dir, dockerFingerprintFrom, dockerFingerprintRun, echo, emailext, emailextrecipients, envVarsForTool, erreur, fileExists, getContext, git, input, isUnix, library, libraryResource, load, mail, jalon, noeud, parallèle, Powershell, propriétés, pwd, readFile, readTrusted, resolScm, réessayez, script, sh, veille, étape, stash, étape, svn, délai d'attente, horodatage, tm, outil, désarchiver, décomposer, validateDeclarativePipeline, waitUntil, withContext, withCredentials, avecDockerContainer, avecDockerRegistry, avecDockerServer, withEnv, wrap, writeFile, ws] ou symboles [all, allOf, always, ant, antFromApache, antOutcome, antTarget, any, anyOf, apiToken, architecture, archiveArtifacts, artifactManager, autorisationMatrix, batchFile, booleanParam, branche,

De l'aide?

5
Abhishek Somani

Cela signifie que vous n'avez pas withMaven comme méthode DSL disponible. La plupart du temps, cela signifie que vous n'avez pas installé de plugin. Dans ce cas, le plug-in Pipeline Maven est requis. https://wiki.jenkins.io/display/JENKINS/Pipeline+Maven+Plugin

10
Rob Hales

En plus de la réponse de Rob Hales, cela s'appelle "Pipeline Maven Integration Plugin" dans Jenkins ver. 2.73.3 ou plus tard

2
Jonathan L

Essaye ça:

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"
        }
    }

  }

}

Référence: https://jenkins.io/doc/book/pipeline/syntax/

1
Litty Philip