如何使用命令列表及其短名称列出所有可用的jenkins插件

时间:2019-07-02 12:50:59

标签: jenkins jenkins-plugins

我想使用命令行选项列出所有可用的插件名称和它们的简称,以便可以通过jenkins命令行自动化所需的插件安装。

请告知。谢谢

  • 到目前为止,我试图在同一位置找到答案,但是我仅获得有关如何列出已安装插件的答案,而不是所有可用插件的答案。
  • 我发现此链接http://updates.jenkins-ci.org/download/plugins/列出了所有插件,但仅包含其短名称

1 个答案:

答案 0 :(得分:1)

你是如此亲密! The LAYOUT is detailed here。该信息在附近供您解析,希望我理解正确。

http://updates.jenkins-ci.org/download/plugins/确实是插件的位置,实际的插件版本位于每个文件夹中。

https://updates.jenkins.io/是根级别。您将在plugin-versions.json中找到所有插件的列表和详细信息。

update-center.js,update-center.jsonupdate-center.json.html分别包含JSON,JSONP和HTML格式的实际更新中心元数据。您可以解析json以提取您要查找的所有内容。还提供了有关文档URL,发行历史记录以及更新的列表。

这是细微之处。分别有stable(即:LTS)或latest(即:每周)和主要版本。每个版本都有自己的子列表,具体取决于最低版本和兼容性。


插件选择 由于这些都不能告诉您插件的实际作用,因此最好的选择是在https://plugins.jenkins.io/处选择插件。单击任何插件(例如:mailer)都会显示一个包含详细信息的标题块:

邮件程序 1.23
Jenkins的最低要求:1.642.3
ID:邮件

ID是您要查找的简称。浏览并找到您要使用的插件,这就是您的列表。不用担心依赖关系。


关于插件管理

即使在独立实例上,我也使用Docker install_plugins.sh的修改脚本来生成要安装的插件的完整列表。

您可以检查输出或使用下面的常规脚本简化“必须拥有”列表。另外,由于依赖项更新一直在发生,因此如果我需要完全相同地重新应用于其他实例(而不是从策划的列表中),我还会生成一个实际安装的更新列表。我的推荐清单是〜45个插件,安装了115个以上。

例如:workflow-api包括[workflow-scm-step],其中包括[git, subversion],因此无需指定git。但是您想知道您使用的是哪个版本。有时您可能需要显式添加一个依赖项,以获取最新的版本(以避免每个JENKINS-54018插件split from Jenkins出现缺陷)。

println "Jenkins Instance : " + Jenkins.getInstance().getComputer('').getHostName() + " - " + Jenkins.getInstance().getRootUrl() 
println "Installed Plugins: "
println "=================="
Jenkins.instance.pluginManager.plugins.sort(false) { a, b -> a.getShortName().toLowerCase() <=> b.getShortName().toLowerCase()}.each { plugin ->
   println "${plugin.getShortName()}:${plugin.getVersion()} | ${plugin.getDisplayName()} "
}

println""
println "Plugins Dependency tree (...: dependencies; +++: dependants) :"
println "======================="
Jenkins.instance.pluginManager.plugins.sort(false) { a, b -> a.getShortName().toLowerCase() <=> b.getShortName().toLowerCase()}.each { plugin ->
   println "${plugin.getShortName()}:${plugin.getVersion()} | ${plugin.getDisplayName()} "
   println "+++ ${plugin.getDependants()}"
   println "... ${plugin.getDependencies()}"
   println ''
}

return