49

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

4

7 に答える 7

84

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

試す:

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

参考:Maven依存関係プラグインページ

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

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

したがって、 -DoutputFile=/path/to/file で試してみることを検討してください

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

于 2012-07-30T20:56:16.703 に答える
9

追加

<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
于 2011-10-31T17:07:09.630 に答える
4

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

このサイト(Google の上位の結果のみ) によると、Windows のコンソールも>符号を使用して出力ストリームをファイルに転送しているようです。それで、これを試してみませんか?

于 2011-10-31T23:39:18.757 に答える
0

おそらく、効果的なpom(ファイルを保存するためのいくつかのLinuxコマンドと組み合わせて)で十分な場合があります。

于 2011-10-31T13:39:05.983 に答える
0

いつでもMinGW と MSYSdependency:treeをインストールしてから、Windows で使用する Linux の例を使用できます。

于 2011-10-31T13:27:08.190 に答える