Jenkins(groovy)从shell脚本获取列表

w46czmvw  于 2023-03-17  发布在  Jenkins
关注(0)|答案(1)|浏览(204)

我可以将WORKSPACE中的元素列表传递给Groovy脚本吗?
我的意思是,我在Jenkins工作空间中有一些文件,其中包含元素

"element1", "element2", "element3", "element4"

我想将此文件作为列表传递给Groovy脚本

List components = ["element1", "element2", "element3", "element4"]

我试着用

List componentsList = []

env.Components = sh(script: "cat $WORKSPACE/File", returnStdout: true).trim().componentsList.addAll()

但它不工作(错误消息来自Jenkins)

groovy.lang.MissingPropertyException: No such field found: field java.lang.String componentsList

P.S.我需要这个列表创建一个Map从2列表在未来
顺便说一句,我想我可以避免使用sh来从文件中获取内容。也许使用Groovy工具更好?

zdwk9cvp

zdwk9cvp1#

我不想尝试使用sh(),因为它所做的一切就是阅读文件。

env.Components = readFile("File").trim().split(",") as List

你可以跳过定义List和sh,使用readFile会从当前工作目录(很可能是工作区根目录)将文件读入String。
需要考虑的一件事是,如果这些组件位于单独的行上,您可以执行以下操作:

env.Components = new File("File").collect { it.trim() }

相关问题