Jenkins + Groovy脚本 = 高效✔✔ (纯干货)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值