Jenkins在启动时,会执行$JENKINS_HOME目录下的init.groovy脚本,以及init.groovy.d下的所有Groovy文件。在这些Groovy脚本中,我们可以访问Jenkins实例,并对插件进行配置,从而实现版本化Jenkins的目标。
以下代码示例展示了如何在init.groovy中向Jenkins增加了一个Maven配置
import hudson.model.*;
import jenkins.model.*;
import hudson.tools.*;
import hudson.tasks.Maven.MavenInstaller;
import hudson.tasks.Maven.MavenInstallation;
//取得Jenkins实例
def instance =
Jenkins.getInstance()
def mavenVersion =
'3.5.2'
//拿到Maven插件在Jenkins中的实例
def mavenTool = instance.getDescriptor("hudson.tasks.Maven")
def mavenInstallations = mavenTool.getInstallations()
def mavenInstaller =
new
MavenInstaller(mavenVersion)
def installSourceProperty =
new installSourceProperty([mavenInstaller])
//配置Maven插件
def name =
"jenkins-book-mvn-"
mavenVersion
def maven_list =
new
MavenInstallation(
name,
//name
-
"",
//Home
-
[installSourceProperty]
)
mavenInstallations = maven_inst
mavenTool.SetInstallations((MavenInstallation[]) mavenInstallations)
mavenTool.save()
//保存配置
效果图:
理论上,Jenkins的所有配置都可以通过此方式进行设置
脚本命令行调试
init.groovy脚本是在Jenkins启动时加载执行的,那是不是私说,如果反复调试init.groovy脚本,就需要反复重启Jenkins?当然不用
Jenkins本身提供了一个特性:脚本命令行。通过它,我们可以直接在界面上修改并执行Groovy脚本,而不是重启Jenkins。 1.单机Manage Jenkins-》Script Console
2.在Script Console页面中,填入Groovy脚本,然后单机Run执行按钮。
脚本执行完成后,在命令框的下方输出日志。因为它是直接操作Jenkins实例的,脚本会立即生效,所以在生产环境谨慎用。