我有一个 groovy 脚本来为我的 Jenkins 服务器创建文件夹。文件夹插件已安装并正在运行。我还安装了 Job DSL 插件并创建了 Seed 作业。提供 groovy DSL 代码有 2 个选项。1. 使用提供的 DSL 脚本或 2. 查看文件系统。
如果我使用选项 1 并提供此脚本,它可以完美运行,我会看到文件夹:
def folders = '''
Active Folder
Active Folder/DqCpi
Active Folder/DqCtlRent
Active Folder/DqFileBox
'''
def folderList = folders.tokenize('\n')
for (folderName in folderList) {
folder(folderName)
}
到目前为止,一切都很好。
我将此代码保存到种子作业工作区文件夹中的 Folders.groovy 中,然后尝试选项 2
这失败了,控制台中的错误消息是:
Processing DSL script Folders.groovy
ERROR: (Folders.groovy, line 1) No signature of method: Folders.?def() is applicable for argument types: (java.lang.String) values: [
Active Folder
Active Folder/DqCpi
Active Folder/DqCtlRent
Active Folder/DqFileBox
]
Possible solutions: grep(), folder(java.lang.String), job(java.lang.String), queue(java.lang.String), use([Ljava.lang.Object;), grep(java.lang.Object)
Finished: FAILURE
文件 Folders.groovy 以 UTF8 格式保存。
为什么 inline 版本有效而文件版本失败?