Job DSLを使用して、複数の Maven ステップを実行する必要があるジョブを定義しています。これは例です:
def mavenInst = 'maven-3x'
job('test') {
steps{
maven {
mavenInstallation(mavenInst)
goals('fuu')
}
maven {
mavenInstallation(mavenInst)
goals('bar')
}
// more steps of the same form.
maven {
mavenInstallation(mavenInst)
goals('fuu bar')
}
}
}
そのため、多くのコードが頻繁に繰り返されます。
ジョブ記述のそれぞれの部分を抽出して、ジョブ DSL 内から呼び出すことは可能ですか? 私は次のようなものを想像します:
def mavenInst = 'maven-3x'
job('test') {
steps{
myCustomStep('fuu')
myCustomStep('bar')
// more steps of the same form.
myCustomStep('fuu bar')
}
}
これにより、コードが大幅に削減され、将来の変更が容易になります。
手順には何らかのコンテキストが必要であると読みましたが、その方法がわかりません。次のようにブロックをconfigureクロージャーに抽出しようとしました:
def fuubar = { it ->
mavenInstallation(mavenInst)
goals('fuu bar')
}
しかし、要素を で呼び出すとconfigure fuubar
、結果のジョブ configure.xml には何も表示されません。
どんな助けでも大歓迎です。