Как настроить циклическую ссылку в модулях Maven? - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть проблема со сборкой проекта maven ...

Родитель проекта mvn устанавливается так:

<groupId>com.company.system.ping</groupId>
<artifactId>system-ping</artifactId>
<name>system-ping</name>    
<parent>
    <artifactId>parent_lvl_1</artifactId>
    <groupId>com.company.system</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

Затем я ищу POM указанного родителя и нахожу это:

<groupId>com.company.system</groupId>
<artifactId>parent_lvl_1</artifactId>
<packaging>pom</packaging>
<name>_proj_test</name>
<version>1.0-SNAPSHOT</version>
<parent>
    <artifactId>parent_lvl_0</artifactId>
    <groupId>com.company</groupId>
    <version>1</version>
</parent>

Наконец, я смотрю на первого родителя и вижу это:

<groupId>com.company</groupId>
<artifactId>parent_lvl_0</artifactId>
<packaging>pom</packaging>
<name>_main</name>
<version>1</version>
<description>The whole Projects</description>

Теперь я проверяю модули:

<modules>
    <module>../_proj_test</module>

    ...

</modules>

Первый родительский модуль ссылаетсяребенок!Поэтому, когда я пытаюсь установить

mvn

на '_main', я получаю следующее:

[ERROR]   The project com.company.system:_proj_test:1.0-SNAPSHOT (C:\...\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: The repository system is offline but the artifact com.company:_main:pom:1 is not available in the local repository. and 'parent.relativePath' points at wrong local POM @ line 4, column 10 -> [Help 2]
[ERROR]

Я перевожу это на: ваш родитель запрашивает модуль, который требует от вас .Если я закомментирую все в модулях , я могу установить все правильно, но это НЕ нормально для меня!Как я могу построить родительский объект без построения зависимостей модуля?

Спасибо!

1 Ответ

1 голос
/ 06 февраля 2012

Конфиг выглядит для меня очень странно, в основном потому, что ваш _proj_test, который является дочерним для «_main», расположен на том же уровне.зависимости модуля?

Попробуйте mvn -N установить .

Что касается структуры проекта, я бы сделал это следующим образом:

1) $ basedir с '_main' pom.xml, которое должно содержать это

<modules>
  <module>_proj_test</module>
</modules>

2) $ basedir / _proj_test с '_proj_test' pom.xml, которое должно содержать это

<modules>
  <module>system-ping</module>
</modules>

3) $ basedir / _proj_test / system-ping с 'system-ping' pom.xml (с правильным groupId родительского - com.company.system вместо com.company )

...