maven и импорт подпроектов
От: f95.2  
Дата: 01.07.20 18:48
Оценка:
Я хочу создать проект, состоящий из двух подпроектов, один из которых использует другой.
Делаю так:
$ mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=homemade.test_multimodule -DartifactId=test_multimodule


В pom.xml меняю <packaging>jar</packaging> на <packaging>pom</packaging>.
А также дописываю
<properties>
  <maven.compiler.source>10</maven.compiler.source>
  <maven.compiler.target>10</maven.compiler.target>
</properties>


Далее,
 
test_multimodule$ mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=homemade.test_multimodule -DartifactId=submodule1
test_multimodule$ mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=homemade.test_multimodule -DartifactId=submodule2


В test_multimodule/submodule2/src/main/java/homemade/test_multimodule/App.java я пишу:

import homemade.test_multmodule.submodule1.App;


И при компиляции получаю ошибку, потому что соответствующий класс не найден.
Вопрос: как правильно импортировать один подпроект из другого?
Re: maven и импорт подпроектов
От: vsb Казахстан  
Дата: 01.07.20 20:56
Оценка:
Нужно прописать в test_multimodule/submodule2/pom.xml зависимость от homemade.test_multimodule:submodule1
Re[2]: maven и импорт подпроектов
От: f95.2  
Дата: 01.07.20 21:48
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Нужно прописать в test_multimodule/submodule2/pom.xml зависимость от homemade.test_multimodule:submodule1


Вставил вот такую зависимость:
<dependency>
  <groupId>homemade.test_multimodule</groupId>
  <artifactId>submodule1</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

не помогло.

А дело точно в зависимости?
Просто submodule1 корректно собирается, и скомпилированные классы есть.
Может дело в путях?
Скомпилированный класс лежит в
test_multimodule/submodule1/target/classes/homemade/test_multimodule
а при импорте я пишу
import homemade.test_multmodule.submodule1.App;
Ни в classpath, ни где-то еще я пути не указываю.
но ведь имя, которое пишется в import, с путем в файловой системе не связано...
Re[3]: maven и импорт подпроектов
От: vsb Казахстан  
Дата: 02.07.20 11:23
Оценка:
Здравствуйте, f95.2, Вы писали:

F2>Здравствуйте, vsb, Вы писали:


vsb>>Нужно прописать в test_multimodule/submodule2/pom.xml зависимость от homemade.test_multimodule:submodule1


F2>Вставил вот такую зависимость:


Откуда компиляцию запускаете? Наберите mvn package из каталога test_multimodule
Re[4]: maven и импорт подпроектов
От: f95.2  
Дата: 02.07.20 22:45
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Откуда компиляцию запускаете? Наберите mvn package из каталога test_multimodule

Так и делаю, получаю
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/gamer/src/test_multimodule/submodule2/src/main/java/homemade/test_multimodule/App.java:[3,43] package homemade.test_multmodule.submodule1 does not exist
[INFO] 1 error


Хз почему не воспроизводится, я же в первом сообщении указал как я проект формирую.
Вот мой проект: http://files.rsdn.org/139669/test_multimodule.zip
Re[5]: maven и импорт подпроектов
От: vsb Казахстан  
Дата: 02.07.20 22:55
Оценка:
В подпроекте submodule1 нет пакета homemade.test_multmodule.submodule1 вот и не находит. Там есть только пакет homemade.test_multmodule. Чтобы он там появился, надо создать каталог test_multimodule\submodule1\src\main\java\homemade\test_multimodule\submodule1 , положить туда App.java и поменять package в App.java.
Отредактировано 02.07.2020 23:01 vsb . Предыдущая версия . Еще …
Отредактировано 02.07.2020 22:56 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.