Как настроить maven
Перейти к содержимому

Как настроить maven

  • автор:

Apache Maven – установка и настройка

img

Apache Maven — это инструмент управления проектами и автоматизации сборки с открытым исходным кодом, основанный на концепции объектной модели проекта (POM – Project Object Model), которая в основном используется для развертывания приложений на основе Java, но также может использоваться в проектах, написанных на C#, Ruby и другиех языках программирования.

В этой статье мы объясним, как установить и настроить последнюю версию Apache Maven в системе CentOS 7 (данная инструкция также работает с дистрибутивом RHEL и Fedora).

Apache Maven установка и настройка

  • Недавно развернутый или существующий экземпляр сервера CentOS 7.
  • Java Development Kit (JDK) — Maven 3.3+ требует JDK 1.7 или выше для выполнения.

Установка OpenJDK 8 в CentOS 7

Java Development Kit (JDK) является основным требованием для установки Apache Maven, поэтому сначала установите Java в системе CentOS 7 из репозитория по умолчанию и проверьте версию с помощью следующих команд.

# yum install -y java-1.8.0-openjdk-devel # java -version

Если установка прошла успешно то, вы увидите следующий вывод.

openjdk version "1.8.0_141" OpenJDK Runtime Environment (build 1.8.0_141-b16) OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)
Установка Apache Maven в CentOS 7

Далее перейдите на официальную страницу загрузки Apache Maven и загрузите последнюю версию или используйте следующую команду wget, чтобы загрузить ее в домашний каталог maven ‘/usr/local/src’.

# cd /usr/local/src # wget http://www-us.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
Настройка среды Apache Maven

Теперь нам нужно сконфигурировать переменные окружения для предварительно скомпилированных файлов Apache Maven в нашей системе, создав файл конфигурации «maven.sh» в каталоге «/etc/profile.d» .

# cd /etc/profile.d/ # vim maven.sh

Добавьте следующую конфигурацию в файл конфигурации «maven.sh».

# Apache Maven Environment Variables # MAVEN_HOME for Maven 1 — M2_HOME for Maven 2 export M2_HOME=/usr/local/src/apache-maven export PATH=$/bin:$

Теперь сделайте конфигурационный файл «maven.sh» исполняемым, а затем загрузите конфигурацию, выполнив команду «source» .

# chmod +x maven.sh # source /etc/profile.d/maven.sh
Проверка версии Apache Maven

Чтобы проверить установку Apache Maven, выполните следующую команду.

# mvn --version

И вы должны получить вывод, похожий на следующий:

Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T19:33:14+01:00) Maven home: /usr/local/src/apache-maven Java version: 9.0.4, vendor: Oracle Corporation, runtime: /opt/java/jdk-9.0.4 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.17.6-1.el7.elrepo.x86_64", arch: "amd64", family: "unix"

Вот и все! Вы успешно установили Apache Maven 3.5.4 в вашей системе CentOS 7.

Установка maven

Мы уже научились писать маленькие программы, поэтому теперь будем учиться писать большие. Как известно, чем больше и сложнее программа, тем больше за ее разработку платят денег:) И начнем с небольшой предыстории…

С ростом размера программ разработчики столкнулись с двумя новыми для себя обстоятельствами:

  • Над одной программой работает большое количество людей.
  • Нет такого человека, который бы знал весь код программы.

Очень часто начали возникать ситуации, когда программист фиксил баг в одном месте программы и при этом ломал что-то в другом. В release documentation даже появилась такая шутка:

  • Исправили старые баги 🙂
  • Добавили новые 🙁

Тогда же придумали два подхода к решению этой проблемы: технический и менеджерский.

Технический подход заключался в том, что программы разбивали на части: библиотеки и модули. Каждый такой модуль был небольшим кирпичиком из которых потом выстраивались большие проекты. Библиотеки же – это такие универсальные компоненты, которые могут использоваться в разных программах.

Менеджерский подход был еще интереснее – они ограничивал количество людей, которые могут работать над одним проектом/библиотекой. Эмпирически даже вывели правило: команда должна быть настолько большой, чтобы «ее можно было накормить двумя пиццами» . Обычно это означает, что если над проектом работает более 8 человек, то его нужно разделить на два проекта.

В сообществе Java-разработчиков популярным стало написание библиотек на все случаи жизни и выкладывание их в общий доступ. Таким образом, Java-программисты могли не писать снова один и тот же код (который зачастую был сыроват и содержал баги), а пользоваться готовыми и проверенными решениями.

Дополнительным стимулом стало то, что язык Java получил большую популярность при написании серверных решений (работал на бэкенде). Во-первых, у серверного ПО более высокие требования к надежности, и использование проверенных временем библиотек всегда предпочтительнее, чем написание своего кода.

Во-вторых, у серверов практически нет ограничений на размер кода. Разработчик мобильного приложения старается впихнуть его в 10 мегабайт, десктопного приложения – в 100 мегабайт. А бэкенд-разработчик на Java может напихать в проект несколько десятков гигабайт библиотек и ему слова никто не скажет 🙂

Это, кстати, не шутка. Легко можно встретить бэкенд-проект из нескольких десятков модулей и с парой сотен библиотек. Вот только описывать (и изменять!) сценарии сборки таких проектов стало чрезвычайно трудно.

И тут появился Maven.

1.2 Знакомство с Maven

  • Описание проекта;
  • Сценарии сборки проектов;
  • Зависимости между библиотеками.

Предшественником Maven’а был Ant, а наследником является Gradle. Но именно Maven развил и довел до совершенства три перечисленных стандарта, а также регламентировал их взаимодействие. Именно он вывел работу Java-сообществ на новый уровень. Давай же посмотрим на него подробнее.

Maven’а

Технически Maven – это специальная программа/сервис, основная цель которой управлять процессом сборки проектов. Ее можно просто скачать в виде архива и распаковать в любую директорию. Специальный установщик для этого не нужен.

Графического интерфейса у нее нет – все команды отдаются ей с помощью консоли. Чтобы еще более комфортно с ней работать, рекомендуется прописать в своей ОС специальные переменные окружения (environment variables).

Так же у Maven есть специальный репозиторий (директория/папка), где он хранит библиотеки, которые используются им при сборке проектов. Тебе нужно будет выбрать какую-нибудь папку на диске и назначить ее в качестве репозитория.

Еще из интересного можно отметить наличие глобального Maven-репозитория для всех библиотек, но об этом расскажем немного позже.

1.3 Загрузка и установка Maven

У Maven есть официальный сайт maven.apache.org. Там очень много документации по проекту, так что, если возникнут сложности или дополнительные вопросы – заходи, не стесняйся.

Также на странице downloads (https://maven.apache.org/download.cgi) можно скачать архив с maven (apache-maven-3.8.5-bin.zip). Распакованный архив займет где-то 10 Мб, хотя для локального maven репозитория со временем потребуется несколько сотен мегабайт памяти.

Maven написан на Java и требует JRE не ниже 7 версии, а также прописанные переменные окружения типа JAVA_HOME.

Просто создай на компьютере папку для Maven, например, d:\devtools , и распакуй в нее архив с Maven. В итоге у тебя должна получиться папка типа d:\devtools\maven\bin , где будут находиться основные бинарные файлы проекта.

1.4 Переменные окружения

После этого нужно добавить путь к папке bin из распакованного архива в переменную среды PATH.

Чтобы установить переменную среды (environment variable) в Windows 10, нужно перейти в Панель управления — Система — Дополнительные параметры системы. Затем нажать “Переменные среды”, найти PATH и выбрать “Изменить”, после чего добавить путь d:\devtools\maven\bin в конец строки. Обрати внимание, путь должен вести именно к папке bin.

В ОС на основе Unix переменную среды можно добавить консольной командной:

 export PATH=/opt/apache-maven-3.8.5/bin:$PATH 

Если ты все сделал правильно, то в консоли нужно набрать команду: «mvn -v». В ответ ты увидишь что-то типа:

 C:\Users\Zapp>mvn -v Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200) Maven home: T:\apache-maven-3.0.5\bin\.. Java version: 1.8.0_65, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.8.0_65\jre Default locale: en_US, platform encoding: Cp1251 OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 

1.5 Локальный репозиторий Maven

Также ты можешь задать специальную папку, где Maven будет хранить jar-библиотеки, которые будет использовать при сборке проектов. Такую папку называют – локальный maven репозиторий.

Если такая папка не задана, то Maven создаст ее в домашней директории текущего пользователя. У меня это директория: C:\Users\Zapp\.m2

Папка имеет довольно специфическое имя “.m2”. Хотя пользователей Linux оно не пугает – там это довольно распространенный подход к именованию различных ”репозиториев” и/или любого другого хранилища служебной информации.

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

Maven до версии 3.5 требовал указать переменную окружения с именем M2_HOME, но теперь это не нужно.

Maven – настройка среды

Maven – это инструмент на основе Java, поэтому самое первое требование – установить JDK на ваш компьютер.

Системные требования

JDK 1,7 или выше.
объем памяти Нет минимальных требований.
Дисковое пространство Нет минимальных требований.
Операционная система Нет минимальных требований.

Шаг 1. Проверка установки Java на вашем компьютере.

Откройте консоль и выполните следующую команду Java .

Операционные системы задача команда
Windows Открытая командная консоль c: \> Java-версия
Linux Открытый командный терминал $ java-версия
макинтош Открытый терминал машина: ~ Джозеф $ Java-версия

Давайте проверим вывод для всех операционных систем –

Java (TM) SE Runtime Environment (сборка 1.7.0_60-b19)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.60-b09, смешанный режим)

Java (TM) SE Runtime Environment (сборка 1.7.0_60-b19)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.60-b09, смешанный режим)

Java (TM) SE Runtime Environment (сборка 1.7.0_60-b19)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.60-b09, смешанный режим)

Java (TM) SE Runtime Environment (сборка 1.7.0_60-b19)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.60-b09, смешанный режим)

Java (TM) SE Runtime Environment (сборка 1.7.0_60-b19)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.60-b09, смешанный режим)

Java (TM) SE Runtime Environment (сборка 1.7.0_60-b19)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 24.60-b09, смешанный режим)

Если у вас не установлена ​​Java, установите Java Software Development Kit (SDK) по адресу https://www.oracle.com/technetwork/java/javase/downloads/index.html . Мы принимаем Java 1.7.0.60 в качестве установленной версии для этого урока.

Шаг 2 – Установите JAVA Environment

Установите переменную среды JAVA_HOME, чтобы она указывала на местоположение базовой директории, где установлена ​​Java на вашем компьютере. Например –

Операционные системы Выход
Windows Установите переменную среды JAVA_HOME в C: \ Program Files \ Java \ jdk1.7.0_60
Linux экспорт JAVA_HOME = / usr / local / java-current
макинтош export JAVA_HOME = / Библиотека / Java / Главная

Добавьте расположение компилятора Java в системный путь.

Операционные системы Выход
Windows Добавьте строку «; C: \ Program Files \ Java \ jdk1.7.0.60 \ bin» в конец системной переменной Path.
Linux экспорт PATH = $ PATH: $ JAVA_HOME / bin /
макинтош не требуется

Проверьте установку Java с помощью команды java -version, как описано выше.

Шаг 3 – Скачать архив Maven

Операционные системы Название архива
Windows apache-maven-3.3.1-bin.zip
Linux апач-Maven-3.3.1-bin.tar.gz
макинтош апач-Maven-3.3.1-bin.tar.gz

Шаг 4 – Распакуйте архив Maven

Распакуйте архив в каталог, в который вы хотите установить Maven 3.3.1. Подкаталог apache-maven-3.3.1 будет создан из архива.

Операционные системы Местоположение (может отличаться в зависимости от вашей установки)
Windows C: \ Program Files \ Apache Software Foundation \ apache-maven-3.3.1
Linux / USR / местные / Apache-Maven
макинтош / USR / местные / Apache-Maven

Шаг 5 – Установите переменные среды Maven

Добавьте M2_HOME, M2, MAVEN_OPTS к переменным среды.

Установите переменные среды, используя системные свойства.

M2_HOME = C: \ Program Files \ Apache Software Foundation \ apache-maven-3.3.1 M2 =% M2_HOME% \ bin MAVEN_OPTS = -Xms256m -Xmx512m

Откройте командный терминал и установите переменные среды.

export M2_HOME = / usr / local / apache-maven / apache-maven-3.3.1 export M2 = $ M2_HOME / bin

экспорт MAVEN_OPTS = -Xms256m -Xmx512m

Откройте командный терминал и установите переменные среды.

export M2_HOME = / usr / local / apache-maven / apache-maven-3.3.1

экспорт M2 = $ M2_HOME / bin

экспорт MAVEN_OPTS = -Xms256m -Xmx512m

Установите переменные среды, используя системные свойства.

M2_HOME = C: \ Program Files \ Apache Software Foundation \ apache-maven-3.3.1 M2 =% M2_HOME% \ bin MAVEN_OPTS = -Xms256m -Xmx512m

Откройте командный терминал и установите переменные среды.

export M2_HOME = / usr / local / apache-maven / apache-maven-3.3.1 export M2 = $ M2_HOME / bin

экспорт MAVEN_OPTS = -Xms256m -Xmx512m

Откройте командный терминал и установите переменные среды.

export M2_HOME = / usr / local / apache-maven / apache-maven-3.3.1

экспорт M2 = $ M2_HOME / bin

экспорт MAVEN_OPTS = -Xms256m -Xmx512m

Шаг 6 – добавьте каталог Maven bin в системный путь

Теперь добавьте переменную M2 к системному пути.

Операционные системы Выход
Windows Добавьте строку;% M2% в конец системной переменной Path.
Linux экспорт PATH = $ M2: $ PATH
макинтош экспорт PATH = $ M2: $ PATH

Шаг 7 – Проверьте установку Maven

Теперь откройте консоль и выполните следующую команду mvn .

Операционные системы задача команда
Windows Открытая командная консоль c: \> mvn –version
Linux Открытый командный терминал $ mvn –version
макинтош Открытый терминал машина: ~ Джозеф $ mvn –version

Наконец, проверьте вывод приведенных выше команд, который должен быть следующим:

Apache Maven 3.3.1 (r801777; 2009-08-07 00: 46: 01 + 0530)

Версия Java: 1.7.0_60

Дом Java: C: \ Program Files \ Java \ jdk1.7.0_60 \ jre

Apache Maven 3.3.1 (r801777; 2009-08-07 00: 46: 01 + 0530)

Версия Java: 1.7.0_60

Дом Java: C: \ Program Files \ Java \ jdk1.7.0_60 \ jre

Apache Maven 3.3.1 (r801777; 2009-08-07 00: 46: 01 + 0530)

Версия Java: 1.7.0_60

Дом Java: C: \ Program Files \ Java \ jdk1.7.0_60 \ jre

Основы Maven: что это такое и как работает

Собираем проект на Java быстро, без регистрации и СМС.

Иллюстрация: Lip Kee / Apache Software Foundation / Wikimedia Commons / John Fowler / Maksym Ostrozhynskyy / Brett Wharton / Ben Kolde / Unsplash / Дима Руденок для Skillbox Media

Богдан Островерхов

Богдан Островерхов

Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.

Если спросить у Java-разработчика, кто его лучший друг, то, скорее всего, он расскажет про Apache Maven. Это фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM (Project Object Model).

Пока что звучит сложно, но в этой статье мы разберёмся в основах работы со сборщиком проектов и заглянем в его сердце — файл pom.xml.

Что вы узнаете про Maven:

  • зачем он нужен и есть ли у него аналоги;
  • как его правильно установить на компьютер и можно ли обойтись без этого;
  • как его настроить и собрать свой первый проект;
  • зачем ему репозитории и какими они бывают.

Что такое Maven

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

Например, чтобы собрать приложение для управления базами данных на Java, нам понадобятся фреймворки Spring и Hibernate, библиотека JUnit для модульного тестирования и сама база данных. Всё это можно собрать в одном проекте вручную, но могут быть трудности из-за большого числа зависимостей. Здесь на помощь разработчикам приходит Maven. Он автоматически добавит эти или другие зависимости в проект и соберёт его в исполняемый файл.

Maven — не единственный сборщик проектов. Некоторые разработчики используют его аналоги — Gradle и Ant. Но именно Maven сегодня — золотой стандарт в индустрии.

Установка Maven

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

Важно! Чтобы работать с Java, у вас на компьютере должен быть установлен и настроен JDK. Мы уже писали, как это сделать правильно.

Установка Maven вручную

Скачайте архив со сборщиком для своей операционной системы с официального сайта Apache Maven и распакуйте его. Лучше всего создать для этого отдельную папку, так как путь к ней нам понадобится позже.

Если у вас Linux, то установку можно запустить через командную строку:

В открывшемся окне нажмите кнопку Создать и укажите полный адрес до папки bin из распакованного архива Maven:

Проверьте настройку переменных среды. Для этого зайдите в командную строку и введите mvn -v. Если Maven установлен, то появится информация о его версии:

Linux/Mac

Откройте в текстовом редакторе файл ~/.bashrc или ~/.bash_profile в Linux или .zshrc в macOS. Файл находится в домашней директории текущего пользователя . Если файла нет, создайте его и впишите:

Для Mac в последней строке будет указано family: «mac».

Использование Maven в IntelliJ IDEA

Для работы с Maven мы будем использовать IntelliJ IDEA. Это удобная среда разработки, в которой сборщик проектов установлен из коробки.

Настройки Maven в IDE можно найти в правой части рабочей области после создания проекта на Java:

Настройка Maven и сборка проекта

Начнём работу с создания шаблона проекта. Среда разработки и здесь сэкономит нам время, так как самостоятельно пропишет необходимые параметры.

Создайте новый проект:

Программа предложит выбрать Maven Archetype в качестве шаблона сборки. Кликните на него и в окне преднастроек выберите Archetype quickstart. Нажмите Create:

В окне проекта вы увидите, как Maven зашёл в репозитории и начал что-то скачивать, — это нормально:

Слева на экране показана структура проекта. Нам нужен класс App.java, в котором находится метод main. Чтобы найти его, откройте папку src, затем main и java. Внутри App.java хранится небольшой фрагмент кода:

Всё сработало как надо — появился текст Hello World!:

Поздравляем! Вы собрали первый проект в Maven.

Репозитории Maven

Maven умеет не только выводить что-то в консоль. Его мощь — в библиотеках, которые можно подключить к проекту. Для этого используются репозитории.

Репозитории Maven — это хранилища, где находятся библиотеки. Что-то вроде Google Play или App Store, но для сборщика проектов. Репозитории бывают локальными и удалёнными. Последние делятся на общедоступные и сторонние.

Локальный репозиторий расположен на вашем компьютере. Там Maven хранит библиотеки, которые вы используете в своих проектах.

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

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

Сторонние репозитории предоставляют какие-либо организации или сообщества. Чтобы Maven искал библиотеки именно в них, необходимо это настроить.

Библиотеки могут быть в состоянии снапшота (SNAPSHOT) или релиза (release). Снапшоты — это версии библиотек в разработке. Они могут меняться внутри без изменения номера версии. Это может привести к проблемам, так как версия библиотеки остаётся прежней, но её функциональность может измениться. Релизы — стабильные версии библиотек, которые не изменяются, а выпускаются под конкретным номером. Лучше всего использовать именно их.

Настройки работы Maven с репозиториями прописаны в settings.xml. Сам файл находится в папке conf вашей директории с Maven:

Откройте settings.xml в любом текстовом редакторе. Там много кода, но нам нужна секция . По умолчанию она выглядит так:

mirrors>  mirrorId repositoryId Human Readable Name for this Mirror. http://my.repository.com/repo/path  --> mirror> id>maven-default-http-blocker id> mirrorOf>external:http:* mirrorOf> name>Pseudo repository to mirror external repositories initially using HTTP. name> url>http://0.0.0.0/ url> blocked>true blocked> mirror> mirrors>

id — уникальный идентификатор для данного зеркала . В этом случае ID установлен как maven-default-http-blocker. Такая конфигурация блокирует внешние репозитории, использующие протокол HTTP. Это полезно, когда мы хотим пользоваться только локальными репозиториями.

mirrorOf — этот элемент указывает, для каких репозиториев будет применяться зеркало. У нас прописан шаблон external:http:*, который означает, что сборщик будет блокировать все внешние репозитории, использующие протокол HTTP, без каких-либо ограничений.

name — имя и описание для зеркала.

url — URL зеркала. Здесь указан фиктивный URL http://0.0.0.0/ в качестве заглушки.

blocked — определяет, блокируется указанное зеркало или нет. У нас установлено значение true, то есть доступ к внешним репозиториям заблокирован.

Если мы хотим, чтобы Maven искал библиотеки в других репозиториях, то должны добавить в блок по шаблону:

mirror> id>external-repos id> url>https://repo.example.com/maven2 url> mirrorOf>external:* mirrorOf> mirror>

В url впишите адрес желаемого репозитория. Теперь Maven сможет его найти.

Что запомнить

Резюмируем всё, что мы узнали про сборщик проектов:

  • Maven облегчает рутинные задачи по сборке проектов на Java и некоторых других языках программирования.
  • Главная сила Maven — это pom-файлы, позволяющие точно настроить сборку проекта с учётом всех используемых библиотек и фреймворков.
  • Для хранения библиотек используются репозитории. Они могут быть локальными, то есть располагаться на вашем компьютере, и удалёнными. Это позволяет гибко настроить доступ к библиотекам и использовать нужные нам версии.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Читайте также:

  • Абстрактные классы в Java и их отличия от интерфейсов
  • Тест. Какой язык создадите вы — Java или Python?
  • HashMap в Java: что это такое и зачем нужно

«Зеркало» здесь — дублёр основного ресурса, позволяющий снизить на него нагрузку.

В macOS у пользователя User домашняя директория находится по адресу: /Users/User

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

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