Jenkins:从Active Choices参数groovy脚本访问其他插件

时间:2018-07-18 09:12:02

标签: jenkins groovy plugins artifactory

我对Jenkins,Groovy以及其他所有事物都是陌生的,所以,如果听起来很蠢,请原谅我。 我正在使用Active Choices插件,并且从Groovy脚本内的AC参数之一中,我想使用其他插件-Artifactory来获取文件并显示其中的每一行作为选项。

try {
    def server = Artifactory.newServer url: 'http://localhost:8081/artifactory/', username: 'user', password: 'pass'    
    def downloadSpec = """{
        "files": [
            {
                "pattern": "example-repo-local/file.txt",
                "target": "example/"
            }
        ]
    }"""
    server.download(downloadSpec)

    String text = readFile("example/file.txt")
    return text.tokenize("\n")
} catch (Exception e) {
    return [e]
}

但是,Active Choices参数似乎无法识别其他插件,并且找不到Artifactory属性:

groovy.lang.MissingPropertyException: No such property: Artifactory for class: Script1

我的问题是-我需要以某种方式导入插件吗?如果是这样,我如何确定要导入什么?

有一个选项还可以在Active Choice参数附近指定一个“其他类路径”,但是该插件的WEB-INF / lib目录中包含75个jar文件。 (仅指定artifactory.jar似乎并没有改变任何东西)

仅需注意-管道可以识别Artifactory插件并且可以正常工作-我可以成功连接并获取文件并读取它。

1 个答案:

答案 0 :(得分:0)

我无法以任何合理的方式运行Artifactory插件。因此,我更好的选择是使用curl和Artifactory API。例如我基于Artifactory的Json文件的Active Choices Parameter

import groovy.json.JsonSlurper
def choices = []
def response = ["curl", "-k", "https://artifactory/app/file.json"].execute().text
def list = new JsonSlurper().parseText( response )
list.each { choices.push(it.name) }
return choices