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

Jenkins: Accessing other plugins from Active Choices Parameter groovy script

我对 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 Parameter 似乎无法识别其他插件,并且找不到 Artifactory 属性:

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

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

还有一个选项可以在主动选择参数附近指定一个 "Additional classpath",但该插件在其 WEB-INF/lib 目录中包含 75 个 jar 文件。 (仅指定 artifactory.jar 似乎没有任何改变)

请注意 - Pipeline 识别 Artifactory 插件并且工作正常 - 我可以成功连接和检索文件并读取它。

我无法以合理的方式改进 运行 Artifactory 插件。所以我更好的选择是使用 curl 和 Artifactory API。例如我的 Active Choices Parameter 基于来自 Artifactory 的 Json 文件;

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