プラグインがjenkinsのジョブで使用されているかどうかを確認するにはどうすればよいですか?



How Can I Know Whether Plugin Is Used Any Jobs Jenkins



解決:

その情報を見つける2つの方法があります。

最も簡単なのは、おそらくジョブ構成ファイルをgrepすることです。



例えば。プラグイン(例:org.jenkinsci.plugins.unity3d.Unity3dBuilder)のクラス名(またはパッケージ名)がわかっている場合:

$ JENKINS_HOME / jobs / -name config.xml -maxdepth2を検索| xargs grep Unity3dBuilder

もう1つは、scriptlerプラグインのようなものを使用することですが、ビルドのどこでプラグインが使用されているかについての詳細情報が必要です。



importhudson.model。* importhudson.maven。* importhudson.tasks。* for(item in Hudson.instance.items){// println( 'JOB:' + item.name); for(builder in item.builders){if(builder instanceof org.jenkinsci.plugins.unity3d.Unity3dBuilder){println( '>>' + item.name.padRight(50、 '')+ ' t UNITY3D BUILDER with' + builder.unity3dName); }}}}

アップデート :これは、関連するクラス名を簡単に見つけることができる小さなスクリプトです。それは確かに改善することができます:

インポートjenkins.model。*;インポートhudson.ExtensionFinder;リストファインダー= Jenkins.instance.getExtensionList(ExtensionFinder.class); for(ファインダー内のファインダー){println( '>>>' +ファインダー); if(hudson.ExtensionFinder.GuiceFinderのファインダーインスタンス){println(finder.annotations.size()); for(finder.annotations.keySet()のキー){println(key); }} else if(finder instanceof ruby​​.RubyExtensionFinder){println(finder.parsedPlugins.size()); for(plugin in finder.parsedPlugins){for(extension in plugin.extensions){println( 'rubywrapper for' + extension.instance.clazz); }}} else if(hudson.cli.declarative.CLIRegistererのファインダーインスタンス){println(finder.discover(Jenkins.instance)); for(finder.discover(Jenkins.instance)の拡張){println( 'CLIラッパー' + extension.instance.class); //それらをどうするかわからない}} else {println( 'UNKNOWN FINDER TYPE'); }}

(私の元のリストからのインラインスクリプレットJenkinsExtensionsのhttp://scriptlerweb.appspot.comへの送信はダウンしているようです)

バックアップすることを忘れないでください!




2018年の初めの時点で、プラグインとそれらが使用される場所の優れたリストを提供する「プラグイン使用プラグイン」があります。システムによっては、すべてのプラグインをキャッチできないように見える場合がありますが、プラグインの非常に美しいリストと、拡張可能なリスト内の特定のプラグインに関連するすべてのジョブが表示されます。

https://plugins.jenkins.io/plugin-usage-plugin


評判が悪いのでコメントはできませんが、できれば、受け入れられた回答に記載されている小さなスクリプトのコーヒーブレイクによって提供された壊れたリンクは、インターネットアーカイブで見つけることができます。リンク:

https://web.archive.org/web/20131103111754/http://scriptlerweb.appspot.com/script/show/97001

リンクが切れた場合のスクリプトの内容は次のとおりです。

インポートjenkins.model。*;インポートhudson.ExtensionFinder;リストファインダー= Jenkins.instance.getExtensionList(ExtensionFinder.class); for(ファインダー内のファインダー){println( '>>>' +ファインダー); if(hudson.ExtensionFinder.GuiceFinderのファインダーインスタンス){println(finder.annotations.size()); for(key in finder.annotations.keySet()){println(key); }} else if(finder instanceof ruby​​.RubyExtensionFinder){println(finder.parsedPlugins.size()); for(plugin in finder.parsedPlugins){for(extension in plugin.extensions){println( 'rubywrapper for' + extension.instance.clazz); }}} else if(hudson.cli.declarative.CLIRegistererのファインダーインスタンス){println(finder.discover(Jenkins.instance)); for(finder.discover(Jenkins.instance)の拡張){println( 'CLIラッパー' + extension.instance.class); //それらをどうするかわからない}} else {println( 'UNKNOWN FINDER TYPE'); }}