98

Maven 2 を使用して、jar の依存関係を単なるファイル名として一覧表示する方法はありますか?

mvn dependency:build-classpath 

jar ファイルを一覧表示できますが、ローカル リポジトリ内の場所へのフル パスが含まれます。私が必要とするのは、基本的にファイル名 (またはコピー依存関係の目標がコピーしたファイル名) のリストだけです。

したがって、必要なリストは次のようになります

activation-1.1.jar,antlr-2.7.6.jar,aopalliance-1.0.jar etc...

理想的にはMavenプロパティとしてですが、build-classpathが生成できるようなファイルで十分だと思います。

私が達成しようとしているのはBundle-ClassPath、それ以外の場合は手動で管理されている OSGi バンドルの MANIFEST.MF ファイルに a を書き込むことです。(質問に答えるために、このビットを理解する必要はありません。)

明確にするために:問題は、マニフェストヘッダーをjarファイルのMANIFEST.MFファイルに書き込む方法に関するものではありません(簡単にグーグルブルです)。書きたいデータ、つまり上記のリストを取得する方法について質問しています。

4

9 に答える 9

116

このコマンドは、Maven プロジェクトの依存関係ツリーを生成します。

$ mvn dependency:tree

私はあなたが結果を気に入ると確信しています:-)

于 2010-05-14T13:09:25.053 に答える
22

実際には、jar の最終的なリストについては、単に使用します。

mvn dependency:list

これは、詳細な推移ツリーと競合解決 (詳細) を示すため、最終的なリストを取得するだけではやり過ぎであるdependency:treeよりもはるかに単純です。

追加のパラメーターのドキュメントは次のとおりです

于 2018-03-30T18:52:08.110 に答える
4

Apache Felixプロジェクトを見たことがありますか? あなたが望むことをするはずのバンドルプラグインを含む、プラグインの混乱があります。

<addClasspath>また、でタグを試しました<manifestFile>か?これにより、クラスパスをマニフェストにマージするという望ましい効果が得られるはずです。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  ...
  <configuration>
    <archive>
      <addClasspath>true</addClasspath>
      <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
    </archive>
  </configuration>
  ...
</plugin>
于 2008-11-10T17:45:51.460 に答える
3

ここで何かが足りないかもしれませんが、すでにコピー依存関係を使用しているので、本当に求めているのは、指定されたディレクトリ内のファイルのリストにすぎないように思えます。

Antは、シェルスクリプトと同様に、問題なくこれを実行できます。

于 2010-01-09T01:05:55.643 に答える
2

Maven はマニフェストにクラスパスを自動的に構築できます: http://maven.apache.org/guides/mini/guide-manifest.html

Maven アーカイブ プラグインの構成です。

于 2008-11-10T17:44:10.400 に答える
1

既存の回答にノッチを追加するために、現在の maven-dependency-plugin では、outputPropertyパラメーターを使用してクラスパスをプロパティに保存できます。

于 2013-08-16T00:24:19.457 に答える