8

できますか?

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

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

ありがとう。

4

3 に答える 3

14

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

疑わしいことに、Mavenのヒントとコツ:高度なリアクターオプションのブログ投稿で発表された新しいビルドオプションの1つが役立つ可能性があります。

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

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

于 2009-10-23T12:39:28.040 に答える
3

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

だからあなたの場合:

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

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

于 2009-10-23T18:03:00.340 に答える
0

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

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

<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
于 2009-10-23T12:06:09.403 に答える