web-dev-qa-db-ja.com

子モジュールを構築せずに親POMをインストールする

Mavenプロジェクトには、この構造を持つ親POMがあります。

             parent
               |
        ---------------
        |             |
      child1       child2

"parent"のPOMをローカルREPOにインストールして、child1dependencyManagementで行ったいくつかの変更を行いますが、通常の「クリーンインストール」はできません "child2"壊れており、ビルドされません。

これはmavenでこれを行う適切な方法です(親pomに行き、 "child2"モジュールにコメントする以外)。

110
Mr.Eddart

Mvnコマンドで「-N」オプションを使用します。

mvn -hから:

-N、-非再帰サブプロジェクトに再帰しない

177
Guillaume Polet

ギヨームは確かに正しいし、それは正しいオプションですが、私は個人的にあなたの親を別のモジュールとして保つことをお勧めします。

継承の最善のアプローチは次のとおりです。

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

この方法では、mvn clean installを追加オプションなしで使用して、常に親のみをインストールできます。

また、アグリゲーターの外部に親を配置して、より多くのプロジェクト間で親を再利用できます。

親とアグリゲーターを2つの別個のものとして保持することには、多くの利点があります。しかし、最終的には、プロジェクト/環境に最適なものを選択します。

32
carlspring