![](/img/trans.png)
[英]Jenkins Declarative Pipeline: How to call functions from "Active choices reactive reference parameter's Groovy script"?
[英]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参数似乎无法识别其他插件,并且找不到Artifactory属性:
groovy.lang.MissingPropertyException: No such property: Artifactory for class: Script1
我的问题是-我需要以某种方式导入插件吗? 如果是这样,我如何确定要导入什么?
还可以在Active Choice参数附近指定一个“附加类路径”,但该插件的WEB-INF / lib目录中包含75个jar文件。 (仅指定artifactory.jar似乎并没有改变任何东西)
只需注意-管道可以识别Artifactory插件,并且效果很好-我可以成功连接并获取文件并读取它。
我无法以合理的方式运行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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.