我尝试使用CopyArtifacts()以及编写用于从上游构建复制工件的自定义配置块。我都收到如下所示的错误-

FATAL: No signature of method: javaposse.jobdsl.dsl.Job.CopyArtifacts() is applicable for argument types: (java.lang.String, java.lang.String, jobDSL$_run_closure1_closure4_closure14) values: [xxx-StarTrooper-master.unity, target/**, jobDSL$_run_closure1_closure4_closure14@a1994b]
groovy.lang.MissingMethodException: No signature of method: javaposse.jobdsl.dsl.Job.CopyArtifacts() is applicable for argument types: (java.lang.String, java.lang.String, jobDSL$_run_closure1_closure4_closure14) values: [xxx-StarTrooper-master.unity, target/**, jobDSL$_run_closure1_closure4_closure14@a1994b]
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
    at jobDSL$_run_closure1_closure4.doCall(jobDSL.groovy:43)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

我的代码段如下-
CopyArtifacts(downstreamUnityJob.name,'target/**'){
    buildNumber("${UNITY_BUILD_NUMBER}")
}

当我尝试自定义配置块时,也会出现错误-
FATAL: No signature of method: groovy.util.Node.call() is applicable for argument types: (java.lang.String) values: [xxx-StarTrooper-master.unity]
Possible solutions: wait(), name(), value(), any(), wait(long), get(java.lang.String)
groovy.lang.MissingMethodException: No signature of method: groovy.util.Node.call() is applicable for argument types: (java.lang.String) values: [xxx-StarTrooper-master.unity]
Possible solutions: wait(), name(), value(), any(), wait(long), get(java.lang.String)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
    at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at jobDSL$_run_closure1_closure4_closure14_closure16.doCall(jobDSL.groovy:49)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

这是我的配置块-
configure {
    project -> project/ builders / 'hudson.plugins.copyartifact.CopyArtifact'{
        projectName downstreamUnityJob.name //downstreamUnityJob comes from another job dsl object
        project downstreamUnityJob.name
        filter 'target/**'
        selector('class':"hudson.plugins.copyartifact.SpecificBuild"){
            buildNumber "$UNITY_BUILD_NUMBER"
        }
    }
}

你能让我知道我在想什么吗?

最佳答案

在JobDsl中,copyArtifacts需要以小写c(而不是大写c)开头

在这里看到Job dsl wikiStepContext.copyArtifacts

10-06 14:04