Maven Pom файлы организации - PullRequest
       0

Maven Pom файлы организации

2 голосов
/ 15 сентября 2010

У меня есть два независимых проекта на основе 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)  

Может кто-нибудь, пожалуйста, посоветуйте мне, если я на правильном пути. Я просто думаю, что военный файл также получает зависимости, которые ему не нужны (например, весна, спящий режим и т. Д.), Как мудрые банки получают зависимости, такие как gwt, в которых они не нуждаются. Это имеет значение или нет? или я на касательной здесь :). Любой совет будет очень признателен. (Я знаю, что мое форматирование выглядит ужасно, но я надеюсь, что это имеет смысл)

1 Ответ

2 голосов
/ 16 сентября 2010

Может кто-нибудь посоветовать мне, если я на верном пути.

Я думаю, что вы определенно на правильном пути.Просто создайте этот Parent агрегирующий pom и объявите зависимости GWT, Spring и Hibernate в элементе dependencyManagement.

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

Ссылки

...