Так в основном, у меня есть проект с нескольких модулей, таких какНе удалось найти артефакт в проекте мульти-модуль
- ProjectA
|- Module1
|- Module2
соответствующей части (я считаю) pom.xml
для ProjectA
является:
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyName</groupId>
<artifactId>ProjectA</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<modules>
<module>Module1</module>
<module>Module2</module>
</modules>
И pom.xml
для Module1 является:
<parent>
<groupId>com.companyName</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Module1</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
И pom.xml
для module2, которая зависит от Module1 выглядит следующим образом:
<parent>
<groupId>com.companyName</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Module2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.companyName</groupId>
<artifactId>Module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
...
</dependencies>
Я могу построить и установить Module1 просто отлично. Я могу импортировать классы из него в Module2, но я не могу скомпилировать Module2 с: Could not find artifact com.companyName:ProjectA:pom:0.0.1-SNAPSHOT
Таким же образом я создаю еще один проект ProjectB, который будет иметь Module3. В Module3 pom.xml
:
<dependency>
<groupId>com.companyName.ProjectA</groupId>
<artifactId>Module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Но все же, я не могу импортировать его в моих файлах .java, а com.companyName.ProjectA нет, IntelliJ предупреждает меня. Что я делаю не так? Я пробовал почти каждую конфигурацию в связанных многомодульных проектных вопросах. Благодаря!
Обновления: Выход консоли изменилось на:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/user/workspace/project-name/Module2/src/main/java/com/companyName/ProjectA/Module2/users/UsersDAO.java:[3,39] package com.companyName.ProjectA.Module1 does not exist
[ERROR] /Users/user/workspace/project-name/Module2/src/main/java/com/companyName/ProjectA/Module2/users/UsersDAO.java:[9,6] cannot find symbol...
Update: Интересно, что удаление:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
от родительского проекта (ProjectA
) делает проект работоспособен снова. Тем не менее, мне это нужно (по понятным причинам) Есть ли обходной путь для этого? Благодаря!
Вы подтвердили наличие в '~/.m2/repository' после сборки' Module1'? – nullpointer
@nullpointer Да, и я могу показать его как зависимость для еще одного проекта, например 'ProjectB', но я не могу импортировать его в свои .java-файлы в' Module3' 'ProjectB'. –
Что значит * показать это как зависимость *? Это звучит примерно так: вы всегда можете написать какой-то фрагмент кода, но если вы его не скомпилируете, вы не будете знать, что в этом плохого. – nullpointer