Jenkins Pipeline调用外部Groovy脚本:groovy -cp参数及路径疑问
关于Jenkins Pipeline中Groovy命令的解释
1. -cp参数的含义
-cp是groovy命令的-classpath缩写,作用是指定Groovy运行时的类路径。简单说就是告诉Groovy解释器:如果你的脚本里引用了其他Groovy脚本、Java类文件或者第三方依赖包,就去这个路径下找它们。
2. 为什么/apps/scripts出现两次
这两个路径的作用完全不同:
- 第一个
/apps/scripts是通过-cp指定的类路径目录:假设BuildReport.groovy里调用了同目录下的其他脚本(比如Utils.groovy)或者依赖的类文件,Groovy会从这个目录里加载这些依赖。 - 第二个
/apps/scripts/BuildReport.groovy是要执行的目标脚本的完整路径:明确告诉Groovy解释器,你要运行的是这个具体的脚本文件。
举个例子,如果BuildReport.groovy里写了import Utils,而Utils.groovy就在/apps/scripts下,那么-cp /apps/scripts就会让Groovy找到这个Utils类,脚本才能正常运行。
补充说明
你传递的${env.BUILD_URL}和${env.BUILD_ID}会作为命令行参数传入BuildReport.groovy,在脚本里可以通过args数组获取(比如args[0]就是BUILD_URL,args[1]是BUILD_ID)。
内容的提问来源于stack exchange,提问作者Kasun Wimaladarma
相关产品推荐
相关产品推荐

