0

Это что-то нравится Maven: Non-resolvable parent POM, но не то же самое.Maven: Неразрешимый импорт POM из другого модуля

У меня есть родительский POM

<groupId>group</groupId> 
<artifactId>parent</artifactId> 
<version>SNAPSHOT</version> 
<packaging>pom</packaging> 

<modules> 
    <module>module1</module> 
    <module>module2</module> 
    <module>module3</module> 
</modules> 

module1 определяет некоторые dependencies с помощью dependencyManagement

ребенок POM: module3/pom.xml пытается импортировать module1

<parent> 
    <artifactId>group</artifactId> 
    <groupId>parent</groupId> 
    <version>SNAPSHOT</version> 
    <relativePath>../</relativePath> 
</parent> 

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>group</groupId> 
     <artifactId>module1</artifactId> 
     <version>SNAPSHOT</version> 
     <scope>import</scope> 
     <type>pom</type> 
     <!-- 
     <systemPath>../module1</systemPath> 
     --> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 

Если я пытаюсь построить родителя, его ОК

mvn validate 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Build Order: 

... ... 

[INFO] parent ............................................ SUCCESS [0.128s] 
[INFO] module1 ........................................... SUCCESS [0.011s] 
[INFO] module2 ........................................... SUCCESS [0.009s] 
[INFO] module3 ........................................... SUCCESS [0.009s] 
... ... 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 

Но если я запускаю сборку модуля ребенка, он не

mvn validate 
[INFO] Scanning for projects... 
[ERROR] The build could not read 1 project -> [Help 1] 
[ERROR] 
[ERROR] The project group:module3:SNAPSHOT (/path-tp/project/module3/pom.xml) has 5 errors 
[ERROR]  Non-resolvable import POM: Failure to find group:module1:pom:SNAPSHOT in https://repo1.maven.org/maven2/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced @ line 22, column 19 -> [Help 2] 
... ... 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 

То, что я пытался

  • Я бы попробовать использовать systemPath, но он не поддерживается для import области.
  • Я хотел бы попробовать переместить import области действия dependencies декларации от module3 родительских-модуля, но он не жалуется круговой-зависимость

Как я могу построить/загрузить одинокий подмодуль module3, или есть другой способ разделить тонны dependencyManagement s на несколько подмодулей?

+1

Возможный дубликат [Модулей Maven + Создание единого конкретного модуля] (http://stackoverflow.com/questions/1114026/maven-modules-building-a-single-specific-module) – Tunaki

+0

@Tunaki благодарит за информацию , он работает с использованием командной строки 'mvn -pl module3 -am', но на самом деле я хочу загрузить подмодуль pom из некоторых других утилит, которым нравится« запуск жизненного цикла от jetbrains IDEA »/« с помощью ant-интеграции (maven-ant) до зависимости от нагрузки ", в этих ситуациях нет лучшей поддержки. возможно, мне пришлось переместить все 'dependencyManagements' в родительский pom –

ответ

0

При работе на родительском уровне Maven может разрешать зависимости между модулями.

Но если вы работаете внутри модуля 3, он не имеет представления о том, что module1 является родственным модулем проекта.

Сначала вам необходимо установить модуль 1, если вы хотите напрямую работать с модулем 3.

+0

Вот почему я пытаюсь использовать' systemPath', но обнаружил, что maven не поддерживает этот тип импорта. –

+0

@WilliamLeung Перейти к корневому уровню вашего проекта сделать 'mvn install' , Впоследствии использование 'mvn -pl ...' никогда не будет меняться в папку ... и systemPath никогда не будет работать. – khmarbaise