web-dev-qa-db-ja.com

Maven依存関係を読み取り可能な形式でファイルに出力するにはどうすればよいですか?

私は多くのpom.xmlファイルを含む大きなプロジェクトに取り組んでおり、使用するすべてのライブラリを指定する必要があります。これは、pom.xmlファイルを再帰的に読み取り、groupId、artifactId、スコープ、およびバージョンを取得する必要があることを意味します。 mvndependency:treeをチェックアウトしましたが、読み取り可能な形式でファイルに出力する方法が見つかりません。 appendOutputを見ましたが、cmdでそれを使用する方法の例を見ませんでした。 Linuxでいくつかのソリューションを実行しましたが、Windows XPにしかアクセスできません。

31
why_vincent

これは、(少なくとも今は)dependency:treeプラグインのコマンドラインオプションで実行できます。

試してください:

mvn dependency:tree -Doutput=/path/to/file

リファレンス: Maven Dependency Plugin Page

「読み取り可能な」形式についてのみ質問しましたが、さまざまなオプションで-DoutputTypeパラメーターを渡すこともできます。また、インストールしたバージョンに注意してください。次の警告が表示されます。

[WARNING] The parameter output is deprecated. Use outputFile instead. 

したがって、-DoutputFile =/path/to/fileで試してみてください

また、-DoutputTypeパラメータを取得してデフォルトのテキスト以外のものを提供することはできませんでしたが、それをいじる機会がありませんでした。 YMMV。

65
AC Capehart

追加する

<plugin>
    <groupId>org.Apache.servicemix.tooling</groupId>
    <artifactId>depends-maven-plugin</artifactId>
</plugin>

プラグインはclasses/META-INF/maven/dependencies.propertiesプロジェクトの依存関係を簡単に解析できるファイル。

生成される出力の例:

# Project dependencies generated by the Apache ServiceMix Maven Plugin
# Generated at: Mon Oct 10 17:43:00 CEST 2011

groupId = my.group.name
artifactId = my.artifact.name
version = 0.0.1-SNAPSHOT
my.group.name/my.artifact.name/version = 0.0.1-SNAPSHOT

# dependencies

junit/junit/version = 4.8
junit/junit/type = jar
junit/junit/scope = test

org.easymock/easymock/version = 2.4
org.easymock/easymock/type = jar
org.easymock/easymock/scope = test
4
Luca Geretti

GNU/Linuxでは、mvn dependency:tree > myFile。ただし、Windowsのみに制限されている場合は、コマンドの出力をストリーミングするためのWindowsの構文を探します。

このサイト (Googleの最高の結果)によると、Windowsのコンソールでも>は、出力ストリームをファイルに転送するために署名します。これを試してみませんか?

4
Piotr Nowicki

同じレポジトリ/プロジェクトの下に複数のモジュールがあり、1つのファイルにすべてのモジュールの依存関係が必要な場合は、ビルドを別のものと比較して何かが変更されたかどうかを確認することができます

$project_dir> mvn dependency:tree -DoutputFile=<absolute_path_to_file> -DappendOutput=true

例えば.

$project_dir> mvn dependency:tree -DoutputFile=`pwd`/mvn_dependency_tree.txt -DappendOutput=true

https://maven.Apache.org/plugins/maven-dependency-plugin/tree-mojo.html で利用可能な他のオプションを参照してください

3
Anand Ganesh

おそらく、 effective-pom (ファイルを保存するためのいくつかのLinuxコマンドと組み合わせて)で十分です。

0
smp7d

常に MinGWおよびMSYS をインストールしてから、Windowsでdependency:treeを使用してLinuxの例を使用できます。

0
Wilhelm Kleu