Как создать пустой многомодульный проект в maven
Все знают, что в maven есть очень удобная вещь – архетипы. Шаблоны проекта, проще говоря. Они существуют под почти каждый чих, но есть одна проблема. Иногда у нас могут быть какие-то специфические проекты. Чтобы просто создать пустой многомодульный проект в maven и накидать в него необходимые модули воспользуемся тем же механизмом архетипов.
Для начала создаём пустой проект, в который потом будет подключать уже новые модули, созданные по шаблонам. Для этого воспользуемся командой:
mvn archetype:generate |
Maven запуститься в интерактивном режиме. Всё, что он будет спрашивать можно задать через ключи. Видим следующий диалог. Он предлагает выбрать из большого количества доступных шаблонов тот, который хотим создать.
Шаблоны (archetype) можно искать как по названию, так и по groupdId. Можно выбрать номер, если точно знаете какой. Нас интересует архетип под названием pom-root. Ищем.
Обратите внимание, что нумерация теперь начинается по новому. Выбираем нужный нам пункт 3 org.codehaus.mojo.archetypes:pom-root и жмём enter.
Выбираем последнюю версию (1.1 под номером 3). Далее maven скачает необходимые файлы и предложит заполнить свойства проекта.
Заполняем. И жмём enter.
Готово. У нас появилась папка maven-root-test, в которой появился pom.xml и ничего больше. Содержимое pom.xml будет такое:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ru.maksimvoloshin</groupId> <artifactId>maven-root-test</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>maven-root-test</name> </project> |
Пол дела сделано! Теперь можем закидывать какие угодно модули внутрь, используя groupdId ввиде родительских groupId.artifactId. Для этого нужно запускать
mvn archetype:generate |
из папки только что созданного пустого проекта. Я создал подмодуль из архетипа webapp-javaee6 со следующими параметрами:
Теперь в нашей папке появилась ещё одна: maven-root-test-child со своим pom.xml, в котором указан родительский pom.xml, и прочим содержимым. А корневой pom.xml немного поменялся и теперь выглядит вот так:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ru.maksimvoloshin</groupId> <artifactId>maven-root-test</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>maven-root-test</name> <modules> <module>maven-root-test-child</module> </modules> </project> |
Последние комменатрии