マルチモジュールPOMから単一モジュールをビルドする

StackOverflow https://stackoverflow.com/questions/1612854

  •  06-07-2019
  •  | 
  •  

質問

実行できますか?

環境:マルチモジュールpomは、mm1、mm2、mm3の3つのモジュールで構成されています。モジュールmm2には依存関係としてmm1があります。エラーなしで親pomを構築することが可能です。

質問:mm1をローカルリポジトリにインストールせずに、単一モジュールmm2をビルド(つまり、mm2ベースディレクトリからmavenを実行)することは可能ですか?

ありがとう。

役に立ちましたか?

解決

自動インストールなしではありませんが、選択したプロジェクトのみをビルドすることは可能です。マルチモジュールのビルドが必要です(そうすることを想定しています)。リアクタモードでは、すべてのコマンドをリアクタのルートから実行する必要があります。

だからあなたの場合:

mvn reactor:make -Dmake.folders = mm2

この場合、mm2モジュールとそれが依存するモジュール(mm1)をビルドします。

便利なリンク:

本の例から、プロジェクトの永続化と依存関係のプロジェクトモデルのみを作成します。その他のプロジェクトはそのままです mvn reactor:make -Dmake.folders = sample-persist

代替テキストhttp:// www .sonatype.com / books / maven-book / reference / figs / web / running_aro-dependencies.png

その他の便利なコマンドは、Xに依存するプロジェクトをビルドする reactor:make-dependents です。

他のヒント

「mm1をローカルリポジトリにインストールせずに」とはどういう意味か正確にはわかりません。以前にmm2を構築することを意味しますか?

疑わしいのは、 Mavenのヒントとテクニック:Reactorの高度なオプションのブログ投稿が役立ちます:

  

Maven 2.1リリース以降、   新しいMavenコマンドラインがあります   操作できるオプション   Mavenが構築する方法   マルチモジュールプロジェクト。これらの新しい   オプションは次のとおりです。

-rf, --resume-from
        Resume reactor from specified project
-pl, --projects
        Build specified reactor projects instead of all projects
-am, --also-make
        If project list is specified, also build projects required by the list
-amd, --also-make-dependents
        If project list is specified, also build projects that depend on projects on the list

-pl および -am オプションを具体的に考えていました。モジュールのサブセットをビルドするには、ルートディレクトリから次を実行します

$ mvn --projects mm2 --also-make install

ただし、これがあなたの質問に答えるかどうかはわかりません(私には完全に明確ではありません)。

これは、Maven2の依存関係の原則に反します。それを正確に行うことの興味は何ですか?

ただし、mm2のmm1依存関係を system 依存関係として定義することを想像できます。

<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top