2016-01-20 52 views
0

我正在使用Jenkins 1.6.20測試Workflow插件,它使用Groovy創建作業,如您所知。Jenkins:Groovy沒有方法的簽名:static hudson.model.Job.getBuildDir()

我想獲取有關當前作業的信息,例如作業的工作目錄。

這是我的代碼:

import hudson.EnvVars 
import hudson.model.* 

def build_number = Job.getBuildDir() 

echo "$build_number" 

它給我的錯誤:

groovy.lang.MissingMethodException: No signature of method: static hudson.model.Job.getBuildDir() is applicable for argument types:() values: [] 
Possible solutions: getBuildDir(), getBuilds(), getBuild(java.lang.String), getBuilds(hudson.model.Fingerprint$RangeSet), getRootDir() 
    at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1367) 
    at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1353) 
    at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:50) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:15) 
    at WorkflowScript.run(WorkflowScript:4) 
    at ___cps.transform___(Native Method) 
    at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:69) 
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106) 
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixName(FunctionCallBlock.java:74) 
    at sun.reflect.GeneratedMethodAccessor1418.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) 
    at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21) 

使用此文件:

http://javadoc.jenkins-ci.org/hudson/model/Job.html

我可以讀取方法getBuildDir是實際上那裏也有錯誤提示我使用getBuildDir做不對我來說很重要。

+0

'getBuildDir'不是一個靜態方法。你需要一個'Job'的實例來調用它,而不是類本身 –

+0

如果它有一個受保護的構造函數,該如何獲取實例? –

+0

不知道......但你不應該需要構造函數,因爲那裏已經有一份工作了嗎? –

回答

0

如果是別人我可以得到工作區DIR有用:

node { 
    def pwdv = pwd() 
    echo "path ${pwdv}" 
} 
+0

然後你根本不需要'import's。 –

+0

編輯,謝謝! –

相關問題