Java. Создание и сборка проектов с помощью Maven на примере Web-проекта

Fox populi

Maven — средство для управления программным проектом — сборка, тестирование, генерация отчетов и т.д. Имеет большое количество плагинов для разных целей.

Рассмотрим, как с помощью maven можно создать и собрать проект.
В качестве примера возьмем пример Web-приложения имеющего 2 модуля, собственно сам WEB-проект (SimpleWEB) и модуль (SimpleLogic), в котором будет находиться логика.

Первое, что нам нужно сделать, это настроить maven. Полную инструкцию можно прочитать на сайте maven. Краткое описание:
Скачаваем дистрибутив с сайта maven. В нашем примере, версия 2.0.9.
Распаковываем на диск, например в c:\tools\apache-maven (в дальнейшем, ${maven.home})

Прописываем в системную переменную «path» путь к bin каталогу ${maven.home}\bin
Можно поменять путь к репозиторию (хранилищу) библиотек на свой (по-умолчанию будет использоватья каталог ${user.home}/.m2/repository) — в файле ${maven.home}\conf\settings.xml прописать элелемент localRepository в разделе settings, например c:/tools/MavenRepository
Создание проектов.
Создаем каталог, например, c:\work\java\Simple\ (в дальнейшем — ${work}).
Запускаем консоль в этом каталоге или делаем в консоле этот каталог текущим.
Создание проекта SimpleWEB
Создание проекта с помощью maven производится командой
mvn archetype:create -DgroupId= -DartifactId= -DarchetypeArtifactId=,
где groupID — ваш идентификатор группы проектов, он же будет использован для создания пакета по-умолчанию, например, groupID=com.dom.simple,
artifactId — имя проекта , например SimpleWEB,
archetypeArtifactId — тип проекта, если не задан, то будет создан jar проект

Выполняем следующую команду:
mvn archetype:create -DgroupId=com.dom.simple -DartifactId=SimpleWEB -DarchetypeArtifactId=maven-archetype-webapp

Создание проекта SimpleLogic. Выполняем команду:
mvn archetype:create -DgroupId=com.dom.simple -DartifactId=SimpleLogic

Укажем что проект SimpleWEB зависит от SimpleLogic — в файле {work}\SimpleWEB\pom.xml в разделе «dependencies» прописать новую зависимость:

com.dom.simple
SimpleLogic
1.0-SNAPSHOT

Обычно, при использовании maven, создается еще один проект, который содержит в себе ссылки на все остальные проекты. Назовем его «parent». Выполняем комманду:
mvn archetype:create -DgroupId=com.dom.simple -DartifactId=parent
Далее нужно:
В ${work}\parent\pom.xml в «jar» заменить «jar» на «pom»
Блок «dependencies» можно удалить
Прописать блок «modules» с сылками на другие проекты

../SimpleLogic
../SimpleWeb

Проверим как собираются наши проекты. В каталоге ${work}\parent выполняем комманду:
mvn package
Если все сделали правильно, то проекты собирутся успешно и в каталоге «${work}\SimpleWEB\target» будет создан файл «SimpleWEB.war» который содержит наш проект SimpleWEB и внутрь war фала также помещен SimpleLogic.jar
Созданный при сборке war файл можно публиковать, например, в Tomcat.

Все, инфраструктура проектов создана, проекты собираются. Можно писать логику, добавлять странички и с помощью команды «mvn package» собирать web-проект.