Как создать пустой многомодульный проект в maven

Все знают, что в maven есть очень удобная вещь — архетипы. Шаблоны проекта, проще говоря. Они существуют под почти каждый чих, но есть одна проблема. Иногда у нас могут быть какие-то специфические проекты. Чтобы просто создать пустой многомодульный проект в maven и накидать в него необходимые модули воспользуемся тем же механизмом архетипов.

Для начала создаём пустой проект, в который потом будет подключать уже новые модули, созданные по шаблонам. Для этого воспользуемся командой:

mvn archetype:generate

команда mvn generate archetype

Maven запуститься в интерактивном режиме. Всё, что он будет спрашивать можно задать через ключи. Видим следующий диалог. Он предлагает выбрать из большого количества доступных шаблонов тот, который хотим создать.

команда mvn generate archetype interactive mode

Шаблоны (archetype) можно искать как по названию, так и по groupdId. Можно выбрать номер, если точно знаете какой. Нас интересует архетип под названием pom-root. Ищем.

команда mvn generate archetype interactive mode  поиск root

Обратите внимание, что нумерация теперь начинается по новому. Выбираем нужный нам пункт 3 org.codehaus.mojo.archetypes:pom-root и жмём enter.

команда maven archetype generate выбор версии шаблона

Выбираем последнюю версию (1.1 под номером 3). Далее maven скачает необходимые файлы и предложит заполнить свойства проекта.

команда mvn generate archetype interactive mode  ввод свойств проекта

Заполняем. И жмём enter.

команда maven archetype generate успешная генерация проекта

Готово. У нас появилась папка 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 со следующими параметрами:

команда mvn generate archetype создание подмодуля

Теперь в нашей папке появилась ещё одна: 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>

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *