Шаг 121.
Язык программирования Java.
Что такое Maven

На этом шаге мы поговорим про что такое maven

Maven - это инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации. Простые проекты можно собрать в командной строке. Если собирать большие проекты в командной строке, то команда для сборки будет очень длинной, поэтому её иногда записывают в bat/sh скрипт. Но такие скрипты зависят от платформы. Для того чтобы избавиться от этой зависимости и упростить написание скрипта используют инструменты для сборки проекта.

Для платформы Java существуют два основных инструмента для сборки: Ant и Maven. В дальнейшем мы будем говорить только о Maven (про Ant вы можете почитать тут)

Можно выделить следующие преимущества Maven

  1. Независимость от ОС. Сборка проекта происходит в любой операционной системе. Файл проекта один и тот же.
  2. Управление зависимостями. Редко какие проекты пишутся без использования сторонних библиотек (зависимостей). Эти сторонние библиотеки зачастую тоже в свою очередь используют библиотеки разных версий. Maven позволяет управлять такими сложными зависимостями. Что позволяет разрешать конфликты версий и в случае необходимости легко переходить на новые версии библиотек.
  3. Возможна сборка из командной строки. Такое часто необходимо для автоматической сборки проекта на сервере (Continuous Integration).
  4. Хорошая интеграция со средами разработки. Основные среды разработки на java легко открывают проекты которые собираются с помощью maven. При этом зачастую проект настраивать не нужно - он сразу готов к дальнейшей разработке. Как следствие - если с проектом работают в разных средах разработки, то maven удобный способ хранения настроек. Настроечный файл среды разработки и для сборки один и тот же - меньше дублирования данных и соответственно ошибок.
  5. Декларативное описание проекта.

Создать maven проект можно несколькими способами:

  1. Воспользоваться командной строкой и командой mvn archetype:generate.
  2. Воспользоваться инструментами среды разработки.

На этом шаге мы приведем пример создания проекта первым способом. На следующем шаге мы приведем создание проекта вторым способом. Создавать проект мы будем в операционной системе (ОС) Linux Mint. В остальных системах процесс создания проекта не отличается от выбранной нами ОС.

  1. Откроем терминал и создадим папку, в которой будет располагаться наш будущий проект. Перейдем в созданную папку.


    Рис. 1. Рабочая папка

  2. Начнем создавать проект. Для этого введем приведенную ранее команду в терминале. После начала генерации будет предложен список шаблонов maven проектов.


    Рис. 2. Шаблоны maven проектов

  3. Мы согласимся со стандартным шаблоном, нажав клавишу Enter. После чего мы опять нажмем клавишу Enter.
  4. Далее нас попросят ввести значение groupId, artifactId, version (эти значения могут быть произвольными).


    Рис. 3. Ввод значений groupId, artifactId, version

  5. Далее нам покажут все наши настройки проекта и предложат согласиться с ними или нет. Мы согласимся с ними, нажав клавишу Enter.


    Рис. 4. Полная информация о будущем проекте

  6. После чего начнет генерироваться наш проект. Если все прошло хорошо, то на экране вы увидите следующее:


    Рис. 5. Результат генерации проекта

Ознакомимся теперь со структурой проекта. Она представлена ниже на рисунке 6. Корневой папкой проекта является папка ru.kgsu.it. Это название берется из groupId при создании проекта. В ней расположены папка src и файл pom.xml (об этом файле мы поговорим позднее). В папке src расположены две папки main и test. В папке main должны располагаться файлы вашего проекта, а в папке test - файлы, тестирующие ваш проект.


Рис. 6. Структура проекта

Сделать построение проекта можно с помощью команды mvn compile. Если в вашем проекте не будут обнаружены ошибки, то вы увидите следующее:


Рис. 7. Результат компиляции проекта

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

На следующем шаге мы рассмотрим как создается Maven-проект в Intellij Idea

Предыдущий шаг Содержание Следующий шаг