0

いくつかのモジュールで構成されるMavenプロジェクトがあります。主な構造とセットアップは次のとおりです。

  • /project/pom.xml:packaging = pom、すべてのサブモジュール、バージョンを一覧表示します:TRUNK-SNAPSHOT
  • /project/core-module/pom.xml:packaging = jar
  • /project/war-module/pom.xmlcore-module:packaging = war、に依存${project.version}

それがどういうわけか重要な場合、私は開発にIntelliJを使用します。

私が今開発/実行/デバッグしているとき、war-moduleそしてその間に私は手に負えないcore-moduleもののコードを変更します。実行中のwar-moduleアプリケーション(を介して実行jetty:run-exploded)は、現在のビルドではなくcore-module、ローカルに「インストール」されているを使用します。~/.m2/ repositoryIntelliJで「再構築プロジェクト」を実行するか、実行するmvn clean前に実行するかは関係ありません。

私の質問は、mvn install毎回、インストールされているパッケージを回避する必要がありますか、それともパッケージオプションを変更する必要がありますか?

4

1 に答える 1

1

簡単に言うと、答えは次のとおりです。はい、マルチモジュールプロジェクトでは、依存関係をコンパイルしてローカルリポジトリにインストールmvn installするために、毎回実行する必要があります。war-module

ただし、ローカルテストでは、通常、IDE機能を使用してローカルの変更をテストすることをお勧めします。IntelliJを使用すると、構成が非常に簡単になり、さまざまなアプリケーションサーバーをサポートします。

この理由は次のとおりです。大規模なチームで作業し、エンタープライズ共有リポジトリを使用して、共通の依存関係をMavenCentralに公開する必要なしに保持することを想像してみてください。同僚のいずれかが変更を加えcore-module、コミットし、内部共有リポジトリから利用できるようにした場合、Mavenはその依存関係をダウンロードし、Jettyプラグインの実行に使用します。

これの良い面は、それらの依存関係の最後のバージョンでテストすることです。悪い面は、それらの依存関係のコードが作業コピーのコードと同じではないことです。

于 2013-01-24T14:12:37.173 に答える