1

こんにちは、m2eclipse を使用して Eclipse でマルチモジュール プロジェクトを作成しようとしています。私はいくつかのチュートリアルに従いましたが、それが機能する方法は私が期待するものではありません:

これが私のプロジェクトの構造です

  -Root
  -    webapps
  -          module1
  -          module2

ルートとモジュール用の pom.xml があります。(モジュール 1 と 2 は互いに独立しています) pom.xml (ルート) には、

 <modules>
        <module>./webapps/module1</module>
        <module>./webapps/module2</module>
 </modules>

module1 の pom.xml で:

<parent>
        <groupId>{RootGroupId}</groupId>
        <artifactId>{RootArtifactId}</artifactId>
        <version>{RootVersionId}</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

モジュール 2 では、モジュール 1 と同様です。

ルートに移動して pom ファイルを実行すると、ルートのフェーズが最初にトリガーされ、モジュールのフェーズが後でトリガーされます (ルート プロジェクトをビルドし、モジュール プロジェクトもビルドします)。私にとっては問題ありません。

しかし、module1 に移動して pom.xml を実行すると問題が発生します。次に、ルート pom.xml と module1 の pom.xml をトリガーします。私はこれが好きではありません。 What i want to be happened is ONLY the module1's pom file is triggered(module1 のみがビルドされます)、ルートの pom はトリガーされません (ルート プロジェクトはビルドされません)。

助けてください。

4

1 に答える 1

2

更新:プラグイン構成が宣言されている POM から継承する POM にプラグイン構成を適用したくない場合は、 に設定inheritedfalseます。

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-1</version>
    <inherited>false</inherited> <!-- THIS SHOULD DO IT -->
    <executions>
      <execution>
        <id>read-project-properties</id>
        <phase>initialize</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>build.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
  </plugin>

参照


問題を再現しようとしましたが、成功しませんでした。同様のプロジェクト構造を作成しました。

$ツリー。
.
├──pom.xml
└──ウェブアプリ
    ├──モジュール1
    │ ├── pom.xml
    │ └── src
    │ └── メイン
    │ └── ウェブアプリ
    │ ├── index.jsp
    │ └── WEB-INF
    │ └── web.xml
    └──module2
        ├── pom.xml
        └── src
            └──メイン
                ├──資源
                └──ウェブアプリ
                    ├──index.jsp
                    └──WEB-INF
                        └──web.xml

親 pom.xml が宣言する場所:

  <modules>
    <module>webapps/module1</module>
    <module>webapps/module2</module>
  </modules>

そして各子供:

  <parent>
    <artifactId>Q3790987</artifactId>
    <groupId>com.stackoverflow</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

ルートからビルドすると、リアクター ビルドがトリガーされます。

$ mvn インストール
[情報] プロジェクトをスキャンしています...
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] リアクターのビルド順序:
[情報]
[情報] Q3790987
[情報] module1 Maven Web アプリケーション
[情報] module2 Maven Web アプリケーション
[情報]
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
...

ただし、子を作成しても、親では何もトリガーされません。

$ cd webapps/module1/
$ mvn インストール
[情報] プロジェクトをスキャンしています...
[情報]                                                                         
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] module1 のビルド Maven Webapp 1.0-SNAPSHOT
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
...

すべてが私にとって期待どおりに機能します。


(質問を誤解しているように見えたため、最初の回答は削除されました)

于 2010-09-24T21:30:17.820 に答える