3

Maven 2マルチモジュールプロジェクトがあり、すべてがローカルのチェックアウトされたソースから取得されていることを確認したいと思います。

  • ソースを持っているモジュールには何もダウンロードしないようにMavenに指示することは可能ですか?リモートリポジトリを無効にする必要がありますか?
  • Mavenは常に、モジュールをローカルリポジトリにインストールし、その依存関係ごとにモジュールを再度抽出するという高価な方法をとる必要がありますか?
  • ローカルソースが変更された場合、Mavenは最初にモジュールの依存関係を自動的に再コンパイルし、次に依存関係をコンパイルしますか?
4

2 に答える 2

11

ソースを持つモジュールに対して何もダウンロードしないように Maven に指示することは可能ですか?

いいえ。Maven 2 は、ビルド中に現在のモジュールを「見る」だけです。プラス面としては、モジュールで Maven を実行することにより、ツリーの一部を構築できます。

リモートリポジトリを無効にする必要はありますか?

はい、「オフライン」オプション-oまたはを使用します-offline。またはsettings.xml、ファイルを持たないプロキシで使用します。しかし、これはあなたが望むものではありません。

Maven は常に、モジュールをローカル リポジトリにインストールし、依存関係ごとに再度抽出するという高価な方法を取らなければなりませんか?

はい、しかし高価ではありません。ビルド中に、ファイルがコピーされます (10 年前は高価でした)。依存関係を使用すると、Maven はファイルへのパスを Java プロセスに追加するだけです。そのため、ファイルが再度コピーまたは変更されることはありません。Maven は、ローカル リポジトリ内のファイルが変更されない (または、ダウンロード/インストールが発生したときに 1 回だけ変更される) ことを前提としています。

ローカルソースが変更された場合、Maven は最初にモジュールの依存関係を自動的に再コンパイルしますか?

いいえ。Maven 3 の計画はありましたが、そのようなものを有効にするオプションが見つかりません。

問題を解決するには、ローカル プロキシ ( Nexusなど) をインストールする必要があります。

于 2011-02-28T11:21:02.297 に答える
7
  1. Maven ダウンロード スタッフ (依存関係) は、ローカル リポジトリ ( ) で利用できない場合にのみ使用できます$USER_HOME/.m2/repository。何もダウンロードしたくない場合は、オフライン モードを使用してください。これは、スイッチを使用して実行できます-o。例えば

    mvn -o clean install
    
  2. 高価なものは何もありません。完全な親プロジェクトをビルドしている場合は、すべてのモジュールがビルドされ、アーティファクトがローカル リポジトリにコピーされます。次に、それらのプロジェクトに依存するプロジェクトをビルドすると、Maven はそれらをハード ディスク上のローカル リポジトリから現在のプロジェクト用に作成されるパッケージにコピーします。

  3. いいえ。私はやけどをしてしまいました。Maven は依存関係を自動的にコンパイルしません。Maven Reactor Plug-inというプラグインがあります。このプラグインを使用すると、プロジェクトをビルドする前にプロジェクトの依存関係をビルドできます。

于 2011-02-28T11:21:09.783 に答える