0

私のworkflowLibsディレクトリには、いくつかのファイルがあります。

src/org/inin/Pipeline.groovy
src/org/inin/Build.groovy
src/org/inin/Test.groovy

Build.groovyは次のようになります。

package org.inin;

def DoBuild(foo){
  echo "I am building: $foo"
}

Test.groovyは次のようになります。

package org.inin;

def DoTest(foo){
  echo "I am testing: $foo"
}

ビルドで次のようなことをしたい:

def pipeline =  new org.inin.Pipeline()
pipeline.DoBuild() or pipeline.Build.DoBuild()
pipeline.DoTest()  or pipeline.Test.DoTest()

しかし、独自のディレクトリに Pipeline.groovy 参照ファイルを作成する方法がわかりません。私はこれをやってみました:

package org.inin;
load "Build.groovy"
//evaluate(new File("./Build.groovy"))

しかし、私はいつも得ます:

java.lang.NoSuchMethodError: No such DSL method DoBuild found among ...

workflowLibsディレクトリ構造内の groovy ファイル間でコードを共有する適切な方法は何ですか?

4

1 に答える 1

1

私はいくつかのハッカーをやってしまいました:

src/org/inin/Pipeline.groovy:

package org.inin;

def getBuild(){
 return new Build();
}

def getTest(){
 return new Test();
}

src/org/inin/Build.groovy:

package org.inin;

def DoMavenBuild(gitRepo, gitBranch, pomName ){
    ...
}

src/org/inin/Test.groovy:

package org.inin;

def DoTest(){
    ...
}

そして、仕事自体で:

def pipeline =  new org.inin.Pipeline();
pipeline.build.DoMavenBuild(...);
pipeline.test.DoTest();
于 2015-07-23T20:42:16.793 に答える