4 つの groovy スクリプトがあります (2 つは dsl.groovy スクリプトです)。
JobConfig.groovy :
class JobConfig {
final name
JobConfig(map) {
name = map['name']
}
}
topLevel.groovy :
import JobConfig.*
def doSmthWithJobConfig(final JobConfig config) {
println(config.name);
}
sublevel1.dsl.groovy :
GroovyShell shell = new GroovyShell()
def topLevelScript = shell.parse(new File("topLevel.groovy"))
def jobConfigs = [
new JobConfig(name: 'JenkinsTestDSLs'),
new JobConfig(name: 'JenkinsTestDSLs2')
]
jobConfigs.each {
topLevelScript.doSmthWithJobConfig(it);
}
sublevel2.dsl.groovy :
GroovyShell shell = new GroovyShell()
def topLevelScript = shell.parse(new File("topLevel.groovy"))
def jobConfigs = [
new JobConfig(name: 'JenkinsTestDSLs3'),
new JobConfig(name: 'JenkinsTestDSLs4')
]
jobConfigs.each {
topLevelScript.doSmthWithJobConfig(it);
}
ローカルで私が行う場合:
groovyc JobConfig.groovy
スクリプトをローカルで実行しても問題はありません。
しかし、ジェンキンスでは、これらのスクリプトと同じ場所に JobConfig.class を提供しても、実行できません。ここで、JobConfig.groovy が CLASSPATH にある限り、コンパイルを行う必要がないことを読みました。ジェンキンスでそれを行うにはどうすればよいですか? それとも別の解決策がありますか?