Учимся работать с Maven.

Apache Maven — это открытый фреймворк для автоматизации процесса сборки приложения, управления его структурой и нужными зависимостями(используемыми библиотеками). Начинающий разработчик, когда впервые слышит о Maven или о каком-то другом сборщике проектов, например, Gradle, думает: а зачем мне вообще это собственно нужно?  И сначала дело действительно обстоит именно так. Но ровно до того момента, пока программа имеет небольшой размер и ей просто управлять одному человеку. Но с большими проектами дело обстоит куда хуже. В проекте может быть целая куча сторонних библиотек, от которых зависит ваше приложение и весь процесс компиляции, сборки, тестирования хочется как-то облегчить и, по возможности, часть задач оптимизировать, возложив их на сторонний фреймворк. Тут то и появляется Maven. Я рекомендую однажды внимательно ознакомиться с этой статьей и дальше будет гораздо легче. Благо и материал совсем несложный и легко усваивается на практике.

Приступим.

Начнем с установки. Заходим на официальный сайт и скачиваем нужный архив. Теперь распакуйте его в любую директорию. Далее нам нужно установить две переменные среды. Первая, M2_HOME, должна содержать путь к домашней директории Maven.

У меня путь выглядит как: D:\apache-maven-3.3.9
maven_install

Теперь в переменную окружения PATH добавьте еще один путь:  %M2_HOME%\bin 

На этом все. Чтобы проверить правильность установки, наберите команду mvn -version. На экране должно появиться что-то вроде этого:

maven_install_2

В принципе, сейчас вы можете с помощью любой IDE создать Maven-проект и работать дальше в нем. Например, если вы используете NetBeans, выберите:

maven_netbeans

Теперь в файлах проекта вы должны увидеть файл pom.xml. Это основной конфигурационный файл Maven в формате XML, из которого сборщик получает всю необходимую ему информацию. Именно с ним мы сейчас и будем работать:

Обратим внимание на некоторые теги, которые вам еще могут встретиться.

Теги <groupId> и <artifactId> задают полное название вашего проекта. <groupId>  — это имя организации, а <artifactId> — самого проекта. Тег <version> указывает на текущую версию проекта.

С помощью тега <packaging> вы можете задать тип архива, который будет сформирован в процесс сборки. В данном случае это JAR, но может быть, например, WAR или EAR.

В нашем проекте еще нет никаких зависимостей(библиотек). Давайте ради интереса добавим в него JUnit — фреймворк для тестирования нашего приложения(кстати о JUnit вы можете подробнее узнать из этой статьи).

Теперь наш проект пополнился одной нужной библиотекой. Как только вы попытаетесь запустить проект, Maven сам получит нужные зависимости из своего репозитория(удаленного хранилища различных библиотек). К слову, при желании вы можете создавать свои собственные репозитории. Теперь вернемся к файлу pom.xml. Нужные зависимости прописываются внутри тегов <dependencies></dependencies> и каждая из них в свою очередь — в парных тегах <dependency></dependency>. Внутри — уже знакомые нам теги, с помощью которых задается название библиотеки и ее версия. Вы возможно задались вопросом, а откуда мне получить эту информацию? На этот вопрос есть ответ — зайдите на этот полезный ресурс. Здесь вы можете ввести в поиске нужную библиотеку, узнать, есть ли она в репозитории и получить ее подробное описание.

mvn_repository

Выбрав версию библиотеки, вы даже получите строки кода, которые останется только копировать в конфигурационный файл.

mvn_repository_2

Команды Maven и фазы проекта.

Вполне вероятно, что часто вы будете работать с командной строкой. Для этого в Maven есть целый набор довольно простых команд, соответствующих различным фазам жизненного цикла проекта, таким как компилирование, тестирование или установка в локальный/удаленный репозиторий. Это команды:

mvn compile — компилирование проекта.

mvn test — запуск тестов.

mvn package — создание архива(JAR, WAR, EAR)

mvn integration-test — запуск интеграционных тестов

mvn install — загрузка архива в локальное хранилище

mvn deploy — загрузка архива в удаленное хранилище

mvn clean — удаление сформированных архивов(папка target)

Например, находясь в каталоге с проектом, можно набрать команду mvn compile:

mvn_cmd

Как видим, Maven сам получил нужные зависимости и скомпилировал проект. Команды можно записывать не по одной, а в цепочке. Например:

На этом наше знакомство с Maven подошло к концу. Надеюсь, этот урок был для вас полезен. Успехов в программировании!

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

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