Возможно ли, чтобы проект реактора Maven включал другой подпроект реактора в качестве модуля?
Допустим, есть проект реактора myproject с модулями:
<modules>
<module>parent</module>
<module>core</module>
<module>ui</module>
<module>config</module>
</modules>
В myproject есть еще один интеграционный тест под-проекта реактора.
<modules>
<module>admin</module>
<module>base</module>
<module>rest</module>
</modules>
Итак, иерархия выглядит так:
myproject
|_ pom.xml
|_ parent
|_ core
|_ ui
|_ config
|_ integration-tests
|_ admin
|_ base
|_ rest
Теперь я хочу создать модули интеграционных тестов вместе с модулями myproject. Одним из способов является добавление модулей интеграционных тестов в список модулей myproject.
Но можно ли написать:
<modules>
<module>parent</module>
<module>core</module>
<module>ui</module>
<module>config</module>
<module>integration-tests</module>
</modules>
2 ответа
Почему вы называете это проектом реактора (хотя, если говорить технически, он обрабатывается реактором)? Официальный термин, однако, таков:
Агрегация (или мультимодуль)
3.6.2. Мультимодуль...
Да, это возможно. Для Мейвена это не проблема.
Но если вы используете Eclipse в качестве вашей IDE, он не может обрабатывать вложенные проекты слишком хорошо. Если вы, например, выберите admin
проект по созданию нового класса в нем предлагает диалог создания myproject/src/main/java
как исходную папку, так что вы должны адаптировать это каждый раз соответственно. Пути компоновки также не отображаются плоскими, если вы выбрали это в представлении пакета представления.
Тем не менее, вы можете решить это:
- Создайте
myproject
и каждый модуль Maven ниже. - удалять
myproject
из рабочего пространства Eclipse. Оставьте флажок Удалить содержимое проекта на диске! - Импорт → Существующие проекты Maven:
myproject
и все ниже.
В Eclipse вы можете очень хорошо импортировать иерархически ориентированный проект.
Здесь вы можете увидеть импорт иерархического проекта.
Единственное, о чем вам нужно знать, это настроить Eclipse, чтобы он показывал это так, что можно сделать с помощью:
Если вы настроили его таким образом, вы можете просмотреть его в представлении проектов: