des*_*pot 8 groovy jenkins jenkins-plugins jenkins-groovy
我有4个groovy脚本(2个是dsl.groovy脚本):
JobConfig.groovy:
class JobConfig {
final name
JobConfig(map) {
name = map['name']
}
}
Run Code Online (Sandbox Code Playgroud)
topLevel.groovy:
import JobConfig.*
def doSmthWithJobConfig(final JobConfig config) {
println(config.name);
}
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我在当地做:
groovyc JobConfig.groovy
Run Code Online (Sandbox Code Playgroud)
,我没有在本地运行脚本的问题.
但是在jenkins上,即使我在这些脚本所在的同一个地方提供JobConfig.class,我也无法运行它.我在这里读到,只要JobConfig.groovy在CLASSPATH上,我就不需要进行任何编译.我如何用詹金斯做到这一点?还是有其他解决方案吗?
我要做的是,我不会尝试手动完成所有工作,而是创建 Maven 项目或 gradle 项目并在结果项目中组织您的 groovy 文件。当配置maven或gradle来运行它时。一旦maven或gradle运行没有任何问题,你就可以把它交给jenkins。
Jenkins 肯定会接受 Maven 项目,对于 gradle,你必须检查一下,但是可以肯定的是,maven 在本地运行你的常规项目,它在 Jenkins 下运行也不会出现任何问题。
请尝试一下,让我知道。
| 归档时间: |
|
| 查看次数: |
7976 次 |
| 最近记录: |