Eclipse 使用maven的多模块项目未按预期工作?

Eclipse 使用maven的多模块项目未按预期工作?,eclipse,maven-2,project,m2eclipse,multi-module,Eclipse,Maven 2,Project,M2eclipse,Multi Module,嗨 我正在尝试使用m2eclipse在eclipse中创建一个多模块项目。我学习了一些教程,但它的工作方式并不是我所期望的: 这是我的项目结构 -Root - webapps - module1 - module2 我有根和模块的pom.xml。(模块1和模块2相互独立) 在pom.xml(Root)中,我有 /网络应用程序/模块1 /网络应用程序/模块2 在module1的pom.xml中: <parent>

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

这是我的项目结构

  -Root
  -    webapps
  -          module1
  -          module2
我有根和模块的pom.xml。(模块1和模块2相互独立) 在pom.xml(Root)中,我有


/网络应用程序/模块1
/网络应用程序/模块2
在module1的pom.xml中:

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

{RootGroupId}
{RootArtifactId}
{RootVersionId}
../../pom.xml
在模块2中,它类似于模块1

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

但是当我转到module1并运行pom.xml时,问题就出现了。然后它也会这样做:触发根pom.xml和module1的pom.xml。我不喜欢这个<代码>我想发生的是,只有module1的pom文件被触发(只有module1被生成),root的pom将不会被触发(root项目未被生成)


请提供任何帮助。

更新:如果您不想在从声明位置的POM继承的POM中应用插件配置,请将
继承的
设置为
false

  <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>

org.codehaus.mojo




我试图重现这个问题。。。但是没有成功。我创建了一个类似的项目结构:

$ tree . . ├── pom.xml └── webapps ├── module1 │   ├── pom.xml │   └── src │   └── main │   └── webapp │   ├── index.jsp │   └── WEB-INF │   └── web.xml └── module2 ├── pom.xml └── src └── main ├── resources └── webapp ├── index.jsp └── WEB-INF └── web.xml $tree。 . ├── pom.xml └── 网络应用 ├── 模块1 │   ├── pom.xml │   └── src │   └── 主要的 │   └── 网络应用 │   ├── index.jsp │   └── WEB-INF │   └── web.xml └── 模2 ├── pom.xml └── src └── 主要的 ├── 资源 └── 网络应用 ├── index.jsp └── WEB-INF └── web.xml 其中,父pom.xml声明:

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

网络应用/模块1
网络应用/模块2
每个孩子:

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

Q3790987
com.stackoverflow
1.0-快照
../../pom.xml
从根目录构建会触发反应堆构建:

$ mvn install [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] Q3790987 [INFO] module1 Maven Webapp [INFO] module2 Maven Webapp [INFO] [INFO] ------------------------------------------------------------------------ ... $mvn安装 [信息]正在扫描项目。。。 [信息]------------------------------------------------------------------------ [信息]反应堆建造顺序: [信息] [信息]Q3790987 [信息]模块1 Maven Webapp [信息]模块2 Maven Webapp [信息] [信息]------------------------------------------------------------------------ ... 但构建子对象不会触发父对象上的任何事件:

$ cd webapps/module1/ $ mvn install [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building module1 Maven Webapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ ... $cd webapps/模块1/ $mvn安装 [信息]正在扫描项目。。。 [信息] [信息]------------------------------------------------------------------------ [信息]构建模块1 Maven Webapp 1.0-SNAPSHOT [信息]------------------------------------------------------------------------ ... 对我来说,一切都如期进行



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

很抱歉,我使用{RootGroupId},{artifactId}只是为了简单。在真正的Pom文件中,我当然硬编码了它。Pom运行正常,没有错误。唯一的问题是它没有像我期望的那样工作。谢谢帕斯卡。这里是下载我的项目的链接(仅7KB),请看一下:。基本上,在父pom文件中,我有一个插件来读取build.properties文件,它将在初始化阶段触发。但是当我转到module1并运行mvn initialize时,它也会触发读取属性文件的过程。你太好了,你应该接受一些答案(在答案的投票点下方打勾) $ cd webapps/module1/ $ mvn install [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building module1 Maven Webapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ ...