2

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

Reactor1(只是 pom.xml)  
|-- war1 (gwt 相关的东西)  
`-- jar1 (Spring, hibernate 等)

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

Reactor2(只是 pom.xml)  
|-- war2 (gwt 相关的东西)  
`-- jar2 (Spring, hibernate 等)  

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

父级(GWT ,弹簧,休眠)
|-- Reactor1 (只是 pom.xml)
| |-- war1(来自父级的 gwt 内容)
| `-- jar1(来自父级的 Spring、hibernate 等)
`-- Reactor2(只是 pom.xml)
    |-- war2(来自父级的 gwt 相关内容)
    `-- jar2(来自父级的 Spring、hibernate 等)  

如果我走在正确的道路上,有人可以给我建议。我只是在想这个war文件也得到了它不需要的依赖项(比如spring和hibernate等),就像明智的jars得到了他们不需要的gwt这样的依赖项。有没有关系?还是我在这里切线:)。任何建议将不胜感激。(我知道我的格式看起来很糟糕,但我希望它有意义)

4

1 回答 1

2

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

我认为你绝对是在正确的道路上。只需创建这个ParentdependencyManagement聚合 pom 并在元素下声明 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>

参考

于 2010-09-15T23:53:32.517 回答