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
我对 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