Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 如何创建使用作业dsl运行groovy代码的作业?_Jenkins_Jenkins Plugins_Jenkins Job Dsl - Fatal编程技术网

Jenkins 如何创建使用作业dsl运行groovy代码的作业?

Jenkins 如何创建使用作业dsl运行groovy代码的作业?,jenkins,jenkins-plugins,jenkins-job-dsl,Jenkins,Jenkins Plugins,Jenkins Job Dsl,我可以在作业dsl项目中运行此功能: def pluginsListFile = new File("${plugins}/plugins.txt") def pluginsList = jenkins.model.Jenkins.instance.getPluginManager().getPlugins() pluginsList.each { pluginsListFile.append "${it.getShortName()}: ${it.getVersion()}\n" }

我可以在作业dsl项目中运行此功能:

def pluginsListFile = new File("${plugins}/plugins.txt")
def pluginsList = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
pluginsList.each {
    pluginsListFile.append "${it.getShortName()}: ${it.getVersion()}\n"
}
但是我希望job dsl脚本创建一个运行此groovy代码的作业(按计划)。看起来systemGroovyCommand是我想使用的,因为我不明白-看起来你必须为systemGroovyCommand使用.groovy文件,我想避免使用它。

是的,它是。您不必将此脚本存储在单独的文件中,但这是一种最佳做法。
systemGroovyCommand
接受字符串作为参数,因此您可以通过这种方式传递代码,但请记住转义特殊字符

用法示例:

def script = '''
def pluginsListFile = new File("${plugins}/plugins.txt")
def pluginsList = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
pluginsList.each {
    pluginsListFile.append "${it.getShortName()}: ${it.getVersion()}\\n"
}
'''
job('TEST_JOB_SCRIPT') {
    steps {
        systemGroovyCommand(script)
    }
}