Jenkins 管道 - 无法在空对象上调用方法 stage()

pap*_*gee 2 continuous-integration jenkins jenkins-pipeline

我有一个像这样的管道脚本:

node('linux'){
  stage('Setup'){
    echo "Build Stage"

  } stage('Build'){
      echo "Build Stage"

  } stage('Test'){
      echo "Test Stage"
  }  
}
Run Code Online (Sandbox Code Playgroud)

Setup阶段运行良好,但有一个异常之后抛出

java.lang.NullPointerException: Cannot invoke method stage() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
at WorkflowScript.run(WorkflowScript:2)
at ___cps.transform___(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
Run Code Online (Sandbox Code Playgroud)

有什么问题?

mko*_*bit 6

stage('Setup'){
  echo "Build Stage"
} stage('Build'){
Run Code Online (Sandbox Code Playgroud)

stage是一个返回 的方法调用null。您stage('Build'){正试图在null对象上调用,这就是为什么您将NullPointerException.

stage调用移至新行或添加分号以分隔语句。

stage('Setup'){
  echo "Build Stage"
}; stage('Build'){
Run Code Online (Sandbox Code Playgroud)
stage('Setup'){
  echo "Build Stage"

} 
stage('Build'){
Run Code Online (Sandbox Code Playgroud)