11

コマンドラインでMaven管理プロジェクトを実行しようとしています。

pom.xml に一連の依存関係があり、後でダウンロードして ~/.m2/repository/ にインストールします。クラスパスをjarマニフェストに追加するために、pomに必要な構成を含めました。

問題は、次のように jar を実行しようとしていることです: java -jar project-SNAPSHOT.jar.

Javaはダウンロードされた依存関係を見つけることができません(マニフェストにパスなしでリストされているためだと思いますか?)が、これを実行する最善の方法がわかりません。

4

2 に答える 2

7

オプション 1:
作成された jar には、依存する jar ファイルがありません。そのため、すべての依存 jar があるクラスパスを Java に伝える必要があります。

    java -cp /lcoation/of/dependency1.jar:/location/of/dependency2.jar:/location/of/dependency3.jar -jar project-SNAPSHOT.jar

オプション 2:プラグイン
を使用するのが、より簡単で優れた解決策です。AppAssembler内容を含むディレクトリ構造に jar をパッケージ化します。

  1. 依存ジャー
  2. 作成された jar
  3. それを実行するためのシェル/Windowsスクリプト

ここを見てください http://www.mojohaus.org/appassemblyr/appassemblyr-maven-plugin/

オプション 3:
すべての荷物を必要とせず、1 つだけ持ちたい場合は、jar-with-dependency ここを参照してくださいMaven を使用して依存関係を持つ実行可能な JAR を作成するにはどうすればよいですか?

これには、依存するすべての jar が含まれます。


編集 1:オプション 1 の場合、Brad Mは、依存関係プラグインを使用してすべてのプロジェクトの依存関係のリストを取得できると述べました。dependency:build-classpath

于 2012-10-05T15:18:06.747 に答える
7
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime  

ここでさらに例を見つけることができます: Maven から Java メインを実行する 3 つの方法

于 2012-10-05T15:27:56.957 に答える