目录
一、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(String srcDir, String disDir){

本文详细介绍了如何在Jenkins中利用Groovy脚本提高自动化效率。从IntelliJ IDEA配置Groovy环境开始,讨论了Pipeline中使用Groovy脚本的两种方式,包括默认JDK方法和引入三方库。接着,讲解了如何通过Shared Libraries复用代码,以及如何规避Groovy沙箱检查。最后,给出了最佳实践总结,强调在Pipeline中应尽量避免复杂逻辑,利用共享库返回的实例化对象和简单方法。
1790

被折叠的 条评论
为什么被折叠?



