Maven Pom文件组织

时间:2010-09-15 02:11:42

标签: maven-2 pom.xml

我有两个独立的基于gwt的项目使用pom聚合,所以总共有四个项目(或模块)。树看起来像这样。

Reactor1(just pom.xml)  
|-- war1 (gwt related stuff)  
`-- jar1 (Spring , hibernate etc)

和另一个项目但结构完全相同

Reactor2(just pom.xml)  
|-- war2 (gwt related stuff)  
`-- jar2 (Spring , hibernate etc)  

在独立时,他们是同一商业项目的一部分。一个是报告项目,另一个是CMS。我想集中所有主要的依赖项,例如GWT,Spring,Hibernate(显然是核心的)。所以我在想这样一棵树。

Parent(GWT ,SPring,Hibernate) 
|-- Reactor1 (just pom.xml)
|   |-- war1 (gwt stuff from parent)
|   `-- jar1 (Spring , hibernate etc from parent)
`-- Reactor2 (just pom.xml) 
    |-- war2 (gwt related stuff from parent)
    `-- jar2 (Spring , hibernate etc from parent)  

如果我走在正确的道路上,有人可以建议我。我只是认为war文件这也得到了它不需要的依赖(如spring和hibernate等),就像明智的jars正在获得他们不需要的gwt之类的依赖。这有关系吗?或者我在这里切线:)任何建议都会非常感激。 (我知道我的格式看起来很糟糕,但我希望它有意义)

1 个答案:

答案 0 :(得分:2)

  

如果我走在正确的道路上,有人可以建议我。

我认为你肯定是在正确的道路上。只需创建此 Parent 聚合pom,并在dependencyManagement元素下声明GWT,Spring和Hibernate依赖项。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.acme.business</groupId>
  <artifactId>parent</artifactId>
  <version>1.0.0</version>
  ...
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.5.5-Final</version>
      </dependency>
      ...
    <dependencies>
  </dependencyManagement>
  ...
</project>

然后,在子项目中,您可以使用以下声明添加对Hibernate Core的依赖:

<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.acme.business</groupId>
    <artifactId>reactor-1</artifactId>
    <version>1.0.0</version>
  </parent>
  <artifactId>jar1</artifactId>
  ...
  <dependencies>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
    </dependency>
  </dependencies>
</project>

参考