186

インストールされている Jenkins プラグインのリストを取得するにはどうすればよいですか?

Jenkins Remote Access API ドキュメントを検索しましたが、見つかりませんでした。Jenkins の CLI を使用する必要がありますか? ドキュメントまたは例はありますか?

4

21 に答える 21

206

にアクセスしてアクセスできるJenkins Script Consoleを使用して、情報を取得できますhttp://<jenkins-url>/script。(ログインしており、必要な権限を持っている場合)。

スクリプト コンソールのスクリーンショット

次のGroovy スクリプトを入力して、インストールされているプラ​​グインを繰り返し処理し、関連情報を出力します。

Jenkins.instance.pluginManager.plugins.each{
  plugin -> 
    println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}

次のような結果リストが出力されます (切り取られます)。

Sスクリプト出力のスクリーンショット

このソリューションは、Groovy を使用するという点で上記の回答の 1 つに似ていますが、ここでは代わりにスクリプト コンソールを使用しています。スクリプト コンソールは、Jenkins を使用する場合に非常に役立ちます。

アップデート

ソートされたリストを好む場合は、このsortメソッドを呼び出すことができます:

def pluginList = new ArrayList(Jenkins.instance.pluginManager.plugins)
pluginList.sort { it.getShortName() }.each{
  plugin -> 
    println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}

Closure を好みに合わせて調整します (たとえば、ここでは shortName で並べ替えられていますが、この例では DisplayName で並べ替えられています)。

于 2016-02-09T12:58:00.927 に答える
101

最近では、代わりに以下の@Beheで説明されている回答と同じアプローチを使用し、更新されたリンク: https://stackoverflow.com/a/35292719/3423146 (古いリンク: https://stackoverflow.com/a/35292719/1597808) )


API は、深さ、XPath、およびラッパー引数と組み合わせて使用​​できます。

以下は、pluginManager の API をクエリして、インストールされているすべてのプラグインを一覧表示しますが、それらの shortName および version 属性のみを返します。もちろん、「|」を追加することで、追加のフィールドを取得できます。XPath パラメータの末尾に追加し、ノードを識別するパターンを指定します。

wget http://<jenkins>/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins

この場合、wrapper 引数が必要です。結果の一部として複数のノードが返されるためです。これは、複数のフィールドを XPath および複数のプラグイン ノードと照合するためです。

ブラウザーで次の URL を使用して、プラグインに関するどのような情報が利用可能かを確認し、XPath を使用して何を制限するかを決定すると便利です。

http://<jenkins>/pluginManager/api/xml?depth=1
于 2012-10-04T15:38:28.120 に答える
26

Jenkins CLI は、インストールされているすべてのプラグインの一覧表示をサポートしています。

java -jar jenkins-cli.jar -s http://localhost:8080/ list-plugins

于 2013-08-05T13:48:42.857 に答える
22

次のようにJenkinsCLIを使用します。

java -jar jenkins-cli.jar -s http://[jenkins_server] groovy = < pluginEnumerator.groovy

=呼び出しでは、「標準入力から読み取る」ことを意味します。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()}"

コードを試してみたい場合は、JenkinsJavaAPIのドキュメントをご覧ください。

于 2012-03-22T13:01:35.670 に答える
10

Jenkins 管理者は、Jenkins システム情報ページを使用できます。

http://<jenkinsurl>/systemInfo
于 2013-05-20T18:13:32.183 に答える
4

ジェンキンスのホームページから:

  1. [ Jenkins の管理] をクリックします。
  2. プラグインの管理 をクリックします。
  3. [インストール済み] タブをクリックします。

または

  1. Jenkins の URL に直接移動します: {Your Jenkins base URL}/pluginManager/installed
于 2012-07-10T16:06:10.163 に答える
2

これらは十分な答えではないと思います...多くの場合、いくつかの追加の内部手順が含まれます。これが私がやった方法です。

sudo apt-get install jq

...API を呼び出した後、JSON 出力を使用する必要があるためです。

#!/bin/bash
server_addr = 'jenkins'
server_port = '8080'

curl -s -k "http://${server_addr}:${server_port}/pluginManager/api/json?depth=1" \
  | jq '.plugins[]|{shortName, version,longName,url}' -c | sort \
  > plugin-list

echo "dude, here's your list: "
cat plugin-list
于 2016-10-24T18:41:36.587 に答える
0

Jenkins が Jenkins Docker コンテナで実行されている場合、Bash で次のコマンド ラインを使用できます。

java -jar /var/jenkins_home/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ list-plugins --username admin --password `/bin/cat /var/jenkins_home/secrets/initialAdminPassword`
于 2017-05-21T19:09:37.640 に答える
-1

http://jenkins/systemInfo に、インストールされているすべてのプラグインとそれらが有効になっているかどうかを示す表があります。

ただし、これには管理者権限が必要です。

于 2015-10-10T07:57:16.890 に答える