1

您好我正在尝试使用 m2eclipse 在 eclipse 中创建一个多模块项目。我遵循了一些教程,但它的工作方式不是我所期望的:

这是我的项目的结构

  -Root
  -    webapps
  -          module1
  -          module2

我有用于 Root 和模块的 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 类似。

当我转到 Root 并运行 pom 文件时,它将首先触发 Root 的阶段,然后触发模块的阶段(构建根项目并构建模块项目)。对我来说这很好。

但是当我转到 module1 并运行 pom.xml 时,就会出现问题。然后它也这样做:触发 Root pom.xml 和 module1 的 pom.xml。我不喜欢这个。 What i want to be happened is ONLY the module1's pom file is triggered(只构建了module1),不会触发root的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
    │ └── 主要
    │ └── webapp
    │ ├── index.jsp
    │ └── WEB-INF
    │ └── web.xml
    └── 模块2
        ├── pom.xml
        └── 源
            └── 主要
                ├── 资源
                └── 网页应用
                    ├── 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安装
[INFO] 正在扫描项目...
[信息] --------------------------------------------- -------------------------
[INFO] 反应堆建造顺序:
[信息]
[信息] Q3790987
[信息] 模块 1 Maven Webapp
[信息] 模块 2 Maven Web 应用程序
[信息]
[信息] --------------------------------------------- -------------------------
...

但是建立一个孩子不会在父母身上触发任何事情:

$ cd webapps/module1/
$ mvn安装
[INFO] 正在扫描项目...
[信息]                                                                         
[信息] --------------------------------------------- -------------------------
[信息] 构建模块 1 Maven Webapp 1.0-SNAPSHOT
[信息] --------------------------------------------- -------------------------
...

一切都按我的预期工作。


(最初的答案被删除,因为我误解了这个问题)

于 2010-09-24T21:30:17.820 回答