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

Jay*_*oni 2 jenkins jenkins-plugins

我想使用命令行选项列出所有可用的插件名称及其短名称,以便我可以通过 jenkins 命令行自动安装所需的插件。

好心提醒。谢谢

  • 到目前为止,我试图找到相同的答案,但我只得到了如何列出已安装插件的答案,而不是所有可用插件的答案。
  • 我找到了这个链接http://updates.jenkins-ci.org/download/plugins/,它列出了所有插件,但仅包含它们的短名称

Ian*_*n W 6

你们离得太近了!布局详细信息在这里。这些信息就在附近供您解析,希望我的理解是正确的。

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 和发布历史记录以及更新的列表。

这就是它的微妙之处;每个都有稳定(即:LTS)或最新(即:每周)和主要版本。每个都有自己的子列表,具体取决于最低版本和兼容性。


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

Mailer 1.23
最低 Jenkins 要求:1.642.3
ID:mailer

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


关于插件管理

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

2021 年更新:作为GSOC 2019的一部分并在GSOC 2020中进行了完善,引入了一个功能齐全的新插件安装管理器 CLI 工具来替换所有非 GUI 插件管理工具,包括 inatall_plugins.sh。达到类似的结果。

您可以检查输出或使用下面的 groovy 脚本来简化您的“必须具备”列表。此外,由于依赖项更新一直在发生,如果我需要以相同的方式重新应用到不同的实例而不是从我策划的列表中,我还会生成实际安装的更新的列表。我整理的列表大约有 45 个插件,其中安装了超过 115 个。

例如:workflow-apiincludes[workflow-scm-step]包含[git, subversion],所以不需要指定git。但您想知道您获得的是哪个版本。有时,您可能需要显式添加依赖项以获取最新版本以避免缺陷,根据JENKINS-54018,这些插件是从 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
Run Code Online (Sandbox Code Playgroud)