目录
一、IntelliJ IDEA中配置Groovy
我们写在Jenkinsfile中写脚本的模式是, 先在IDE中验证脚本, 然后复制代码至Jenkinsfile, 关于在IntelliJ IDEA中写Groovy脚本参考这篇文章IntelliJ IDEA配置Groovy教程
二、Pipeline中使用Groovy脚本
1. 使用默认jdk提供的方法
Jenkinsfile支持直接在Pipeline块外定义,我们可以把整个脚本想象成一个类, pipeline块就是main函数,是程序的入口,而自定义的类当然可以在main函数中调用 (这里会进行安全性检查,在配置页面不勾选groovy沙箱)
pipeline{
angent any
stages{
stage("Hello World"){
helloWrold()
}
stage("Read file test"){
getFileText()
}
}
}
// ================= Groovy Script ===============
def helloWrold(){
println("Hello World")
}
def getFileText(file){
return (new File(file)).text
}
聪明的你肯定想到可以用哪些库呢? 一般而言如果你的Jenkins版本在安装时会自带jdk,默认该jdk中所有库都可以调用,在pipeline写脚本前可以在其他编辑器验证脚本函数有无引用其他三方库,例子中显然Date
类默认在jdk中,所以不用import
包
2. 使用三方库中的方法
参考文章中的 @Grab
https://www.jenkins.io/doc/book/pipeline/shared-libraries/
默认的Jenkins不会去 %JAVA_HOME%
或者 %GROOVY_HOME%
路径去读取三方包,这点和IntelliJ IDEA等IDE不同,而是会去用户文件夹C:\Users\chao9441\.groovy\grapes
读取,需要将jar
包放置于此目录中
pipeline{
angent any
environment{
SourceDir = "D:\\Temp\\1\\"
DisDir = "D:\\Temp\\2\\"
}
stages{
stage("Use 3rd party function"){
groovyCopyDir("${SourceDir}", "${DisDir}")
}
}
}
// ================= Groovy Script ===============
@Grab(group='commons-io', module='commons-io', version='2.11.0')
import org.apache.commons.io.FileUtils
def void groovyCopyDir