![](/img/trans.png)
[英]java.lang.NullPointerException: Cannot invoke method get() on null object
[英]How to resolve "java.lang.NullPointerException: Cannot invoke method startsWith()"?
我是 groovy 的新手。我正在為 Jenkins 管道編寫一個共享庫。 我正面臨這個java.lang.NullPointerException
異常。 下面是我的代碼:
def call(Map config = [:], env) {
pipeline {
defaults = [
'pipelineStrategy' : 'deployOnly',
'buildSystem' : 'maven'
] + config
environment {
BRANCH_NAME = "${GIT_BRANCH.split("/")[1]}"
}
boolean autoDeploy = false;
if (env.BRANCH_NAME.equals('master') || env.BRANCH_NAME.startsWith('hotfix-')){
autoDeploy = true;
}
}
}
以下是我的 Jenkins 構建日志:
java.lang.NullPointerException: Cannot invoke method startsWith() 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 com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
at pipelineStrategy.call(pipelineStrategy.groovy:21)
您發布的代碼中唯一的 startsWith() 位於
env.BRANCH_NAME.startsWith('hotfix-')
你被告知有一個 null object。這意味着
env.BRANCH_NAME
是 null。您需要考慮為什么或如何處理這種情況。 一種方法可能是使用
String.valueOf(env.BRANCH_NAME).startsWith('hotfix-')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.