2017-07-04 3 views
1

pom.xmlに使用されているすべてのMavenプラグインのバージョンを宣言することはしばしば役に立ちます。新しいプラグインのバージョンが出てから古いビルドを再現可能にする。新しいプロジェクトの場合:現在ビルドで使用されているプラ​​グインをXML形式で出力する方法はありますか?pom.xmlのpluginManagementセクションに簡単に入れることができますか?pomのXML形式で実際に使用されているMavenプラグインを一覧表示

私はversions:display-plugin-updatesはまだ固定されていないバージョンとプラグインの出力を行い、そしてhelp:effective-pom<build><plugins>に暗黙的に実際に使用されるバージョンを表示するが、構成、実行、およびpluginManagement部に必要としない他の情報と文字化けしないことを見出しました。だから私は簡単に何かを探しています - ちょうどmvn -DoutputXML=true dependency:analyzeのように依存関係があります。

答えて

0

help:effective-pomの出力を解析するのはどうですか?

$ mvn help:effective-pom -Doutput=effective-pom.xml 
$ grep "<plugin>" -A 3 effective-pom.xml 
    <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.3</version> 
    </plugin> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
    </plugin> 
    <plugin> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.8</version> 
    </plugin> 
    [...] 

またはXMLパーサと、より堅牢なソリューションのためのXSLTやXQueryを使用した:間に合わせと-ソリューションのためのgrep

。例えば

、出力のこのような製造すれば、以下の通りでXQueryコード

declare default element namespace "http://maven.apache.org/POM/4.0.0"; 
string-join(
    for $plugin in //plugin 
    return string-join(($plugin/groupId/text(), $plugin/artifactId/text(), $plugin/version/text()), ":"), 
    "&#10;" 
) 

:XMLヘッダは、適切なコンフィギュレーションで除去することができること

<?xml version="1.0" encoding="UTF-8"?>maven-antrun-plugin:1.3 
maven-assembly-plugin:2.2-beta-5 
maven-dependency-plugin:2.8 
maven-release-plugin:2.3.2 
maven-source-plugin:3.0.1 
maven-clean-plugin:2.5 
maven-install-plugin:2.4 
maven-deploy-plugin:2.7 
maven-site-plugin:3.3 

注意。

関連する問題