ho 4 script Groovy (2 sono gli script dsl.groovy):Utilizzando una classe Groovy in altri Jenkins script 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);
}
Ora, se a livello locale che faccio:
groovyc JobConfig.groovy
, ottengo nessun problema con l'esecuzione degli script a livello locale.
Ma su jenkins anche se fornisco JobConfig.class nello stesso posto in cui si trovano questi script, non riesco a farlo funzionare. Ho letto here che non è necessario eseguire alcuna compilazione finché JobConfig.groovy si trova su CLASSPATH. Come faccio a farlo con Jenkins? O c'è un'altra soluzione?
come si esegue su Jenkins? –