Jenkins有600多个插件,在真实系统中,我们习惯于安装大量插件.
有时,我们想删除一些插件以使系统更干净或用另一个成熟的插件(不同的名称)替换.
这需要确保没有人/没有工作使用这些插件或我需要通知他们.
在Jenkins系统中是否有任何配置或知道该插件是否被任何作业使用的方法?
更新2013 根据下面的答案,我维护简单的"插件:关键字"映射,如
plugin_keys = {
"git":'scm class="hudson.plugins.git.GitSCM"',
"copyartifact":"hudson.plugins.copyartifact.CopyArtifact",
# and more
}
Run Code Online (Sandbox Code Playgroud)
并从中搜索plugin关键字config.xml,可以通过jenkins远程API获取所有信息(插件,作业,配置)
这个对我有用.
更新2014.04.26 后来的jenkins版本,似乎config.xml被更改为直接有插件名称
喜欢
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.4">
<hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.7.2">
<hudson.plugins.disk__usage.DiskUsageProperty plugin="disk-usage@0.18"/>
<scm class="hudson.plugins.git.GitSCM" plugin="git@1.4.1-SNAPSHOT">
Run Code Online (Sandbox Code Playgroud)
因此,我只是检查这个plugin="<plugin name>"中config.xml,它再次工作
更新2014.05.05
请参阅gist jenkins-stats.py中的完整脚本
更新2018.6.7
有插件使用的插件支持这个(没有REST API还)
我想对我的Jenkins管道进行飞行前检查,以测试是否安装了某个插件.我发现这篇文章检查一个插件存在于Jenkins管道(Groovy)中,它提出了同样的问题,但提供的答案对我来说不可用,因为他们测试插件提供的DSL方法是否可用,是否插件一般是否可用.
我想拥有的是这样的(在我看来Jenkinsfile):
pluginAvailable('plugin-name', '0.0.1')
Run Code Online (Sandbox Code Playgroud)
其中0.0.1可能是(可选)最低版本.
在Pipeline DSL或其他Jenkins课程中有类似的东西吗?