use*_*795 136 jenkins jenkins-plugins
如何获取已安装的Jenkins插件列表?
我搜索了Jenkins Remote Access API文档,但未找到它.我应该使用Jenkins的CLI吗?有文件或例子吗?
Beh*_*ehe 132
您可以使用可通过访问访问的Jenkins脚本控制台来检索信息http://<jenkins-url>/script
.(鉴于您已登录并具有所需权限).
输入以下Groovy脚本以迭代已安装的插件并打印出相关信息:
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}
Run Code Online (Sandbox Code Playgroud)
它会像这样打印结果列表(剪裁):
此解决方案类似于上面的答案之一,它使用Groovy,但在这里我们使用脚本控制台.使用Jenkins时,脚本控制台非常有用.
更新
如果您更喜欢排序列表,可以调用此sort
方法:
Jenkins.instance.pluginManager.plugins.sort { it.getDisplayName() }.each{
plugin ->
println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}
Run Code Online (Sandbox Code Playgroud)
根据你的喜好调整Closure.
dba*_*ley 93
这些天我使用的方法与@Behe下面描述的答案相同,而不是/sf/answers/2470490361/
您可以将API与depth,XPath和包装器参数结合使用.
以下将查询pluginManager的API以列出所有已安装的插件,但仅返回其shortName和version属性.您当然可以通过添加"|"来检索其他字段 到XPath参数的末尾并指定用于标识节点的模式.
wget http://<jenkins>/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins
Run Code Online (Sandbox Code Playgroud)
在这种情况下,包装器参数是必需的,因为它返回多个节点作为结果的一部分,因为它将多个字段与XPath和多个插件节点匹配.
在浏览器中使用以下URL以查看插件上的哪些信息可用,然后使用XPath确定要限制的内容可能很有用:
http://<jenkins>/pluginManager/api/xml?depth=1
Run Code Online (Sandbox Code Playgroud)
小智 22
Jenkins CLI支持列出所有已安装的插件:
java -jar jenkins-cli.jar -s http://localhost:8080/ list-plugins
mal*_*cot 21
像这样使用Jenkins CLI:
java -jar jenkins-cli.jar -s http://[jenkins_server] groovy = < pluginEnumerator.groovy
Run Code Online (Sandbox Code Playgroud)
=
在通话中意味着'从标准输入读取'.pluginEnumerator.groovy包含以下Groovy代码:
println "Running plugin enumerator"
println ""
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println "${it.getShortName()} - ${it.getVersion()}"}
println ""
println "Total number of plugins: ${plugins.size()}"
Run Code Online (Sandbox Code Playgroud)
如果您想使用代码,请参阅Jenkins Java API文档.
Ale*_*ini 17
如果您在docker环境中工作,并且想要以plugins.txt格式输出插件列表,以便将该插件列表传递给install_scripts.sh,请在http://{jenkins}/script
控制台中使用以下脚本:
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println ("${plugin.getShortName()}:${plugin.getVersion()}")
}
Run Code Online (Sandbox Code Playgroud)
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println ("${plugin.getShortName()}:latest")
}
Run Code Online (Sandbox Code Playgroud)
小智 15
这里的答案有点不完整.我不得不从其他来源编译信息以实际获取插件列表.
Jenkins CLI允许我们从命令行与Jenkins服务器进行交互.我们可以通过简单的卷曲调用来获得它.
curl 'localhost:8080/jnlpJars/jenkins-cli.jar' > jenkins-cli.jar
Run Code Online (Sandbox Code Playgroud)
将以下内容另存为plugins.groovy
.
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println "${it.getShortName()}: ${it.getVersion()}"}
Run Code Online (Sandbox Code Playgroud)
localhost:8080
在引用Groovy脚本时,使用您的登录用户名和密码调用Jenkins服务器(此处):
java -jar jenkins-cli.jar -s http://localhost:8080 groovy --username "admin" --password "admin" = < plugins.groovy > plugins.txt
Run Code Online (Sandbox Code Playgroud)
plugins.txt的输出如下所示:
ace-editor: 1.1
ant: 1.5
antisamy-markup-formatter: 1.5
authentication-tokens: 1.3
blueocean-autofavorite: 1.0.0
blueocean-commons: 1.1.4
blueocean-config: 1.1.4
blueocean-dashboard: 1.1.4
blueocean-display-url: 2.0
blueocean-events: 1.1.4
blueocean-git-pipeline: 1.1.4
blueocean-github-pipeline: 1.1.4
blueocean-i18n: 1.1.4
blueocean-jwt: 1.1.4
blueocean-personalization: 1.1.4
blueocean-pipeline-api-impl: 1.1.4
blueocean-pipeline-editor: 0.2.0
blueocean-pipeline-scm-api: 1.1.4
blueocean-rest-impl: 1.1.4
Run Code Online (Sandbox Code Playgroud)
Ale*_*sso 12
Behe对排序插件的回答在我的Jenkins机器上无效.我收到错误是java.lang.UnsupportedOperationException
因为尝试对不可变集合进行排序,即Jenkins.instance.pluginManager.plugins
.简单修复代码:
List<String> jenkinsPlugins = new ArrayList<String>(Jenkins.instance.pluginManager.plugins);
jenkinsPlugins.sort { it.displayName }
.each { plugin ->
println ("${plugin.shortName}:${plugin.version}")
}
Run Code Online (Sandbox Code Playgroud)
使用http://<jenkins-url>/script
URL运行代码.
如果您是Jenkins管理员,则可以使用Jenkins系统信息页面:
http://<jenkinsurl>/systemInfo
Run Code Online (Sandbox Code Playgroud)
与curl
和jq
:
curl -s <jenkins_url>/pluginManager/api/json?depth=1 \
| jq -r '.plugins[] | "\(.shortName):\(.version)"' \
| sort
Run Code Online (Sandbox Code Playgroud)
此命令以特殊的Jenkins plugins.txt
文件使用的格式提供输出,该文件使您可以预安装依赖项(例如,在docker映像中):
ace-editor:1.1
ant:1.8
apache-httpcomponents-client-4-api:4.5.5-3.0
Run Code Online (Sandbox Code Playgroud)
一个示例plugins.txt
:https : //github.com/hoto/jenkinsfile-examples/blob/master/source/jenkins/usr/share/jenkins/plugins.txt
来自Jenkins主页:
要么
归档时间: |
|
查看次数: |
94290 次 |
最近记录: |