В этом уроке я вам покажу основную силу Maven, а именно как создать проект, который можно разрабатывать целой командой и при этом не потребуется каждому члену команды подключать необходимые библиотеки к проекту, давайте начнем.
И так начнем с того, зачем вам нужен Maven? В статье Maven. Часть 1 – Знакомство и настройка мы уже немного разобрали что это и как настроить.
Тут я хочу вам показать как использовать данный инструмент, а покажу вам его использование на примере JUnit тестирования.
Шаг 1. Создание Maven проекта
Запускаем нашу всем любимую Intellij IDEA и нажимаем File->Create New Project
Шаг 2.
Теперь в корне проекта вы должны увидеть файл 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"> <!-- версия модели для POM-ов Maven 2.x всегда 4.0.0 --> <modelVersion>4.0.0</modelVersion> <!-- координаты проекта, то есть набор значений, который позволяет однозначно идентифицировать этот проект --> <groupId>NewMavenProject</groupId> <artifactId>NewMavenProject</artifactId> <version>1.0-SNAPSHOT</version> </project>
С помощью этого файла и осуществляется настройка сборки вашего проекта. К примеру вам нужно собрать проект в *.jar файл, для этого вам достаточно указать это в pom.xml. Как собрать проект в jar файл вы можете посмотреть тут.
Это файл изначально имеет default (поумолчанию) структуру.
Шаг 3. Используем Dependency
Что же такое dependency и для чего они нужны?
Dependency – это зависимости от библиотек, а если точней, то это и есть библиотека, которую вы бы хотели подключить к проекту.
Рассмотрим на базовом шаблоне:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<!-- зависимости от библиотек -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
В выше приведенном примере я продемонстрировал подключение библиотеки JUnit 4.11 к проекту, теперь при сборке проекта эта библиотека упакуется в мой *.jar или *.war архив, а также теперь мы в наших классах можем обращаться к объектам библиотеки JUnit.
<dependencies>
– тут мы размещаем список dependency (библиотек), которые используются в проекте;
<dependency>
– библиотека используемая проектом;
<groupId>
– идентификатор группы библиотеки;
<artifactId>
– артефакт (библиотека);
<version>
– версия библиотеки;
<scope>
– этап использования.
Шаг 4. Структура проекта
Стандартная структура каталогов:
Стандартная структура каталогов — одна из реализаций этого принципа.
Поскольку проект её придерживается, отпадает необходимость специфицировать пути к файлам, что сильно упрощает pom.xml.
Следующая структура показывает важнейшие каталоги.
Корневой каталог проекта:
– pom.xml и все дальнейшие подкаталоги;
– src: все исходные файлы;
src/main
: исходные файлы собственно для продукта;
src/main/java
: Java-исходный текст;
src/main/resources
: другие файлы, которые используются при компиляции или исполнении, например Properties-файлы;
src/test
: исходные файлы, необходимые для организации автоматического тестирования;
src/test/java
: JUnit-тест-задания для автоматического тестирования;
target
: все создаваемые в процессе работы Мавена файлы;
target/classes
: компилированные Java-классы.
Шаг 5. Жизненный цикл
Жизненный цикл проекта — это список поименованных фаз, определяющий порядок действий при его построении.
Maven использует по умолчанию следующий жизненный цикл:
1) archetype – создание темплейта и обработка ресурсов. На этой фазе разрешаются и, при необходимости, скачиваются из интернета зависимости;
2) compile – компиляция;
3) обработка тестовых ресурсов (например — скачивается из интернета JUnit-пакет);
4) компиляция тестов (тестирующие классы не передаются конечным пользователям);
5) test – тестирование;
6) package – упаковка (обычно речь идёт о создании JAR– или WAR-файла);
7) install – инсталляция проекта в локальном Maven-репозитории (теперь он доступен как модуль для других локальных проектов);
8) deploy – инсталляция в удаленном Maven-репозитории (теперь стабильная версия проекта доступна широкому кругу разработчиков).
Maven имеет также стандартный жизненный цикл для чистки (cleaning) и для генерации его страницы (site). Если бы ‘clean’ было частью обычного жизненного цикла, проект подвергался бы чистке при каждом построении, что нежелательно.
Стандартные жизненные циклы могут быть существенно дополнены Maven-плагинами и Maven-архетипами.
Maven-плагины позволяют вставлять в стандартный цикл новые шаги (например, распределение на сервер приложений) или расширять существующие шаги. Maven-архетипы представляют собой заготовки для различнейших программных пакетов (если они отвечают стандартам Maven-структуры).
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
5 комментариев к статье "Maven. Часть 2 – Dependency"
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Можно ли перевести проект с анта на мавен?
Да, можно. Но все ручками нужно переводить.
Вы забыли написать об исключениях в зависимостях .
Add framework support -> Maven
на моем простом учебном примере структура папок перестроилась под мавеновскую, но вот pom.xml все же пришлось доводить до ума руками
Во второй xml-ке наверное теги
лишние.