2017-01-12 31 views
-1

マルチモジュールプロジェクトでMaven依存関係解決メカニズムがどのように機能しているかについて質問があります。マルチモジュールプロジェクトでのMaven依存関係解決

通常、私はマルチモジュールプロジェクトをビルドするときにのみ 'mvn clean install'を使用します。プロジェクト内のモジュールに前のモジュールが必要な場合、依存関係はローカルリポジトリに行き、対応する 'jar '

プロジェクトの内部的な理由から、 'mvn clean compile'を使用する必要があります。このコマンドは、 'install'は存在しませんが、自然に 'jar'を作成しません。そこでここでは、jar 'は作成されていないが、以前のビルドからの変更をプロジェクトで見ることができるのに対し、マルチモジュールプロジェクトの依存関係の解決方法について不思議に思った。ターゲットディレクトリが依存関係管理に使用されていますか?

または 'mvn clean compile'対象ディレクトリは 'mvn clean install'のローカルリポジトリに使用されます。

「マルチモジュール」プロジェクトで依存関係の解決方法を教えてもらえますか?答えを

Thxを.....

答えて

0

は、私はあなたがjarファイルを構築するプロセスにおけるライフサイクルがありhttps://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

を見れば、あなたがよりよく理解すると思います。コンパイルターゲットはコードをコンパイルし、ターゲットディレクトリに完全なクラスフォルダを作成します。このターゲットは、あなたのお金の中のあなたのすべての依存関係を解決し、あなたのローカルリポジトリへの依存関係をダウンロードします。

インストールターゲットはclassesディレクトリからjarファイルを作成し、ローカルリポジトリにインストールします。

本当に役に立つものを得るためにインストールターゲットを実行する必要があると思います。

+0

ライフサイクルを行うことは何もないMavenがマルチモジュールプロジェクトでモジュール間の依存関係を解決する方法を知りたいだけです。 – posthumecaver

0

Mavenは別々のコンポーネントで構成されています。

特定のモジュールを扱うコンポーネントなどが、その依存関係を取得しようとします。このような依存関係をダウンロードした後は、常にローカルリポジトリから依存関係を取得します。依存関係が存在せず、ダウンロードできない場合、それは失敗します。最終的に、モジュールはローカルリポジトリに公開する独自の成果物を作成します。

次に、いくつかのmavenモジュールをビルドするときに、プロジェクトのルートでmvnを呼び出すと、さまざまなモジュールが依存関係を使用してビルドに最適な順序を見つけるように指示することができます。モジュールは別のモジュールに依存しており、依存するモジュールの後にビルドされます。次に、私が記述した前のコンポネントを呼び出し、各モジュールを順番に構築します。

すべての場合、モジュールの依存関係は常にローカルリポジトリから取得されます。実際にビルドされた以前のモジュールは、実際にmvnをインストールしてローカルのリポジトリにアーチファクトをプッシュしていましたが、適切な設定のおかげで任意のステップで強制的に実行することができます(良い考えではないかもしれません)。

以前のコンポーネントjarがビルドされていない場合にrepoに入れられた場合、コンパイルされる次のモジュールのクラスパスにそのようなjarを追加することはできません。

複数のプロジェクトでのみコンパイルを実行しても、それほど有用ではありません。

関連する問題