代码之家  ›  专栏  ›  技术社区  ›  papigee

Jenkins管道-无法对null对象调用方法stage()

  •  3
  • papigee  · 技术社区  · 6 年前

    我有这样一个管道脚本:

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

    这个 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)
    

    可能有什么问题?

    1 回复  |  直到 6 年前
        1
  •  7
  •   John Ingram    3 年前
    stage('Setup'){
      echo "Build Stage"
    } stage('Build'){
    

    stage 是返回 null 你的 stage('Build'){ 正在尝试调用 无效的 这就是为什么你 NullPointerException

    移动您的 阶段 调用新行或添加分号以分隔语句。

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