Skip to content

MAVEN: introduction

Сергій Олексієнко edited this page Nov 11, 2021 · 5 revisions

MAVEN (mvn) что это за штуковина?

(эта страница в разработке, каждый может внести свою лепту в ее содержимое)

Вкратце, maven — это система управления проектом.

Выросла она как сильно улучшенная альтернатива Ant (система сборки проектов), а не расширение ублажение лени программистов.

Есть и другие штуки, на подобии Maven: Gradle, SBT.

Зачем оно нам нужно?!

Простой ответ: чтобы меньше писать консольных команд для компиляции, упаковки и запуска java-проекта.

Там есть еще куча опций пользы Maven, но вам пока хватит и этого.

Например, для компиляции ветвистого проекта обычно нужно ввести: javac -cp out:src/* -d out И это еще сокращенная версия. С применением Maven это же можно сделать проще: mvn compile

Ой, а кто-нибудь пробовал собрать jar вручную? В Maven это просто: mvn package, я пока умолчу о настройке соответствующего плагина в Maven.

Ну ладно эти консольные команды, когда есть IDEA — нам не нужно париться! Так зачем же нам Maven? Все просто: Maven позволяет собирать проект идемпотентно на любой системе и в любой среде разработки одинаково. Никакие слоупоки не упустят какой-то этап сборки проекта... И тут можно было бы вспомнить про make, но сразу скажу, что make императивен и слишком системно зависим, а Maven имеет императивный подход.

Ой, а если нужны дополнительные библиотеки в проекте, как их автоматически подключать и, что самое интересное, постоянно обновлять? А когда их сотни?

В общем Maven это такой мультитул, который заменяет нам сразу сантехника, куховарку, токаря и любовника(цу) много инструментов.

С чего начинается Maven

  1. Это документация. Вот тут стоит ознакомиться с описанием Мавена.
  2. Потом стоит его установить на свой компьютер (для JCB не надо). Я это делаю с помощью SDKMAN!, но в документации описаны различные способы. :)
  3. Любой Maven-проект начинается с файла pom.xml. Maven выполняет все, что задекларированно в этом файле. Детальнее про это смотрите в "MAVEN: what is pom.xml"
  4. Стоит изучить жизненный цикл Maven.
  5. Типичная структура Maven-проекта выглядит так:mvn_project_structure.png
  6. Maven позволяет подключать тысячи библиотек по необходимости. В терминах Мавена они называются зависимостями.
  7. Каждый конечный pom.xml описывает один проект или модуль, в терминах Maven это называется артефактом.