Как управлять подпроектами Maven не в той же структуре каталогов? - PullRequest
0 голосов
/ 06 июня 2011

У меня есть несколько проектов maven, которые имеют общие настройки - репозитории, плагины и общие зависимости из родительского pom.xml.

Я хочу переместить дочерние проекты в отдельное местоположение svn, чтобыу них может быть свой жизненный цикл, меток, веток и ствола.Но если я переместлю подпроекты из структуры каталогов, мне придется переписать весь общий файл pom.xml во всех проектах.

Есть ли лучший способ справиться с этим, чтобы подпроекты все еще могли совместно использоватьобщий родительский pom.xml, не находящийся рядом друг с другом (как папки).

Ответы [ 2 ]

4 голосов
/ 06 июня 2011

Я предполагаю, что вы определили родительский pom.xml следующим образом:

<parent>
  <groupId>my.group</groupId>
  <artifactId>name</artifactId>
  <version>0.1.3-SNAPSHOT</version>
  <relativePath>../pom.xml</relativePath>
</parent>

Просто удалите элемент <relativePath/>, тогда к родительскому элементу обращаются, как и ко всем другим зависимостям, либо из вашего локального репозитория, либоваш собственный репозиторий Nexus.Таким образом, относительный путь не является обязательным, он не зависит от структуры каталогов.

1 голос
/ 07 июня 2011

Я не знаю, почему вы должны явно ссылаться на родительский файл pom.

Обычно я использую родительский pom как проект:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.blah.commons</groupId>
    <artifactId>project-standards</artifactId>
    <name>Common Standards</name>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
...

Обратите внимание на элемент <packaging>pom</packaging>

и в каждом проекте / модуле будет зависеть от стандартов.

* * 1010

Обратите внимание на элемент <parent>.

...