Что за программа maven

После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.

Терминология

Как в любой системе, в Maven, есть свой набор терминов и понятий.

Вся структура проекта описывается в файле pom.xml (POM – Project Object Model), который должен находиться в корневой папке проекта. Ключевым понятием Maven является артефакт — это, по сути, любая библиотека, хранящаяся в репозитории. Это может быть какая-то зависимость или плагин.

Зависимости — это те библиотеки, которые непосредственно используются в вашем проекте для компиляции кода или его тестирования.

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

В самом начале работы с Maven, пользователь непременно столкнется с таким понятием как архетип. Архетип — это некая стандартная компоновка файлов и каталогов в проектах различного рода (веб, swing-проекты и прочие). Другими словами, Maven знает, как обычно строятся проекты и в соответствии с архетипом создает структуру каталогов.

Maven 1: Что такое Maven

Как правило, название артефакта состоит из названия группы, собственного названия и версии. К примеру Spring будет иметь вот такое название в среде Maven: org.springframework.spring:2.5.5. Последний домен означает всегда artifactId, все, что перед ним – groupId – хорошо это запомните!

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

Установка Maven

Последнюю версию всегда можно скачать на странице загрузки на официальном сайте. Просто распаковываем архив в любую директорию. Далее необходимо создать переменную в Path, в которой необходимо указать путь к Maven. Заходим в Win + Pause – Дополнительно – Переменные среды – в верхнем окошке нажимаем Создать, вводим имя M2_HOME и значение допустим “C:apache-maven-2.2.1”.

Далее там же создаем еще одну переменную M2 со значением %M2_HOME%bin. Так же убеждаемся, что есть переменная JAVA_HOME с путем к JDK. Ее значение должно быть примерно таким «c:Program FilesJavajdk1.6.0_10». И наконец в том же окошке создаем/модифицируем переменную Path, в нее необходимо просто написать %M2%, чтобы наша папочка с исполняемым файлом Maven была видна из командной строки. Теперь необходимо проверить работоспособность нашей установки. Для этого заходим в командную строку и вводим команду

mvn –version

Должна появиться информация о версиях Maven, jre и операционной системе, что-то вроде:

Maven version: 2.2.1 Java version: 1.6.0_10 OS name: «windows 2003» version: «5.2» arch: «x86» Family: «windows»

Maven создаст вам локальный репозиторий в вашей личной папке, например в каталоге C:Documents and Settingsusername.m2repository

Системы сборки для Java — Ant, Maven и Gradle

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

Создание приложения из архетипа

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

Итак, допустим нас интересует веб-приложение – находим подходящий архетип, называется он maven-archetype-webapp. В командной строке, в необходимом каталоге выполняем команду Maven:

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

Теперь мы можем лицезреть довольно наглядную структуру каталогов с говорящими названиями java – здесь будут ваши классы, webapp – здесь размещаются странички веб-приложения, resources – различного рода ресурсы в classpath (файлы конфигурации, например), test – юнит-тесты, соответственно и т.п.

Сборка проекта

Здесь все просто – выполняем команду

mvn package
mvn install

в корневом каталоге приложения, там, где находится файл pom.xml. Первая команда скомпилирует ваш проект и поместит его в папку target, а вторая еще и положит его к вам в локальный репозиторий.

Читайте также:
Jouose что за программа

Есть полезная функция, наподобие конвеера, то есть можно написать

mvn clean install

и Maven сначала очистит папку target проекта, потом соберет его и положит в репозиторий.

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

Зависимости и репозитории

Как правило, большинство популярных библиотек находятся в центральном репозитории, поэтому их можно прописывать сразу в раздел dependencies вашего pom-файла. Например чтобы подключить Spring Framework необходимо определить следующую зависимость:

. org.springframework spring 2.5.5

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

Специфические вещи обычно не находятся в центральном репозитории и тогда вам придется указать репозиторий производителя вручную. Для примера добавим зависимость JSF-фреймворка ajax-компонентов JBoss RichFaces.

С зависимостями все просто:

org.richfaces.ui richfaces-ui 3.3.1.GA

А вот репозиторий JBoss теперь необходимо прописать ручками либо в файле settings.xml, который лежит в корне вашего локального репозитория, либо в самом файле pom.xml, в зависимости от того, нужен ли данный репозиторий во всех проектах, либо в каком-то одном конкретном, соответственно:

true false never repository.jboss.com Jboss Repository for Maven http://repository.jboss.com/maven2/ default

Как правило на сайтах крупных проектов пишут всю информацию, необходимую для встраивания их библиотеки в проект на основе Maven, но бывают случаи, когда артефакт приходится искать очень и очень долго. Здесь нам очень сильно может помочь MVNrepository.com — он вам всегда подскажет где может находиться искомая библиотечка. Но если уж и там не нашлось, то из собственного опыта могу посоветовать гуглить « pom.xml». Бывает так, что проекты уже давно закрыты и в репозитории не положены потому что разработчики уже не заботятся об их распространении. Тогда остается один единственный способ – добавить файл в репозиторий вручную командой:

mvn install:install-file -Dfile= -DgroupId= -DartifactId= -Dversion= -Dpackaging=

Последний параметр чаще всего имеет значение jar.

Плагины

Так как плагины являются такими же артефактами, как и зависимости, то они описываются практически так же. Вместо раздела dependencies – plugins, dependency – plugin, repositories – pluginRepositories, repository – pluginRepository.

Плагинами Maven делает все, даже непосредственно то, для чего он затевался – сборку проекта, только этот плагин необязательно указывать в свойствах проекта, если вы не хотите добавить какие-то фичи.

Посмотрим как настроить плагин для создания проекта для Eclipse с использованием WTP ver. 2.0. В раздел plugins нашего pom.xml прописываем следующий плагин:

org.apache.maven.plugins maven-eclipse-plugin 2.0

Теперь идем опять таки в командную строку и выполняем команду

mvn eclipse:eclipse

Ждем пока Maven найдет все библиотеки в репозитории или скачает их и вуаля – теперь наш Maven-проект можно открыть как проект eclipse. При этом библиотеки никуда не копируются как при классическом подходе, а остаются в репозитории и Eclipse делает на них ссылку через свои переменные.

Единого списка всех плагинов естественно не существует, на официальном сайте только есть поддерживаемые плагины непосредственно разработчиками Maven. Однако хотелось бы отметить, что названия плагинов довольно прямолинейны и сделав поиск по ключевым словам «maven tomcat plugin» вы скорее всего обнаружите первой ссылкой плагин для деплоймента проекта в Tomcat.

Собственный репозиторий

К сожалению сам не имею большого опыта настройки репозитория, но могу посоветовать как наиболее простой и распространенный Nexus. За дополнительной информацией следует обратиться на сайт данного проекта.

Однако нельзя оставить без внимания и достойных конкурентов в лице Artifactory и Archiva.

Заключение

Очень надеюсь, что цель данной статьи достигнута – минимальных знаний по Maven должно хватить на работу с не очень большими проектами. Для более серьезных целей очень советую детально изучить maven-compiler-plugin и maven-resource-plugin – они напрямую отвечают за конечную компоновку проекта. Я считаю, что самым главным моментом в обучении Maven является понимание идеологии – Maven описывает конечную структуру проекта, а не пути к ее достижению, в отличие от Ant.
Полезные ссылки
Официальная страница Maven
Документация
Центральный репозиторий
Репозиторий iBiblio
Поиск артефактов по названию
Неплохой форум по Maven
Maven: The Definitive Guide — хорошая книга по Maven

Читайте также:
Swype что это за программа

Источник: habr.com

Maven в Java подробно

Maven – мощный инструмент сборки для Java-проектов. Это инструмент управления и автоматизации. Он в основном написан на языке Java и используется для создания и управления проектами, написанными на C #, Ruby, Scala и других языках.

Что такое Maven?

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

maven

Здесь есть определенные термины, которые могут быть для вас новыми.

  • Файлы POM : для настройки Maven вам необходимо использовать объектную модель проекта (POM), которая хранится в файле pom.xml. POM включает параметр конфигурации, связанный с Maven. У него также есть цели и плагины. В процессе выполнения Maven считывает цель, ищет POM в каталоге и получает необходимую информацию.
  • Жизненные циклы, фазы и цели сборки .
  • Жизненный цикл сборки – это четко определенная последовательность фаз. Он определяет порядок, в котором цели должны быть выполнены.
  • Каждая фаза построения состоит из последовательности целей. Если выполняется один жизненный цикл, выполняются все фазы сборки в этом жизненном цикле.
  • Если выполняется этап сборки, выполняются все этапы сборки до него в заранее определенной последовательности этапов сборки.
  • локальные;
  • центральные;
  • удаленные.

Как установить?

Вам необходимо выполнить следующие простые шаги:

  1. В вашей системе должна быть установлена Java.
  2. Задайте переменную среды Java.
  3. Загрузите Maven.
  4. Теперь вам нужно распаковать zip-архив Maven в желаемое место.
  5. Добавьте каталог bin созданного вами каталога, то есть apache-maven-3.5.3 (независимо от установленной вами версии), в переменную среды PATH и системную переменную.
  6. Теперь откройте cmd и запустите команду mvn -v
  7. Если на вашем экране отображается снимок экрана, показанный ниже, значит, процесс установки завершен.

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T01:19:05+05:30) Maven home: C:apache-maven-3.5.3bin.. Java version: 1.8.0_151, vendor: Oracle Corporation Java home: C:Program FilesJavajdk1.8.0_151jre Default locale: en_US, platform encoding: Cp1252 OS name: «windows 10», version: «10.0», arch: «amd64», family: «windows»

Файл Maven pom.xml

POM означает объектную модель проекта. Файл pom.xml содержит информацию о проекте и информацию о конфигурации для сборки проекта.

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

  • project: Корневой элемент файла pom.xml.
  • groupId: вложенный элемент проекта. Он описывает идентификатор проекта.
  • modelVersion: вложенный элемент проекта. Он сообщает вам версию модели.
  • artifactId: вложенный элемент проекта. В нем указывается идентификатор проекта. Артефакт либо создается, либо используется проектом. Примеры артефактов: JAR, исходные и двоичные дистрибутивы, а также WAR.
  • Version: Подэлемент проекта. Он сообщает вам версию артефакта в данной группе.

Ниже показан образец файла pom.xml:

4.0.0 com.edureka.application1 my-app 1

В файле pom.xml есть некоторые дополнительные элементы:

  • Packaging: определяет тип упаковки, такой как war, jar и т. д.
  • Scope: определяет область для проекта maven.
  • Url: указывает URL-адрес проекта.
  • Name: определяет имя проекта maven.
  • Dependency: определяет зависимость. Он используется внутри зависимостей.

Пример кода файла pom.xml, показывающий дополнительные элементы:

4.0.0 com.edureka.application1 my-application1 1.0 jar Maven Quick Start Archetype http://maven.apache.org junit junit 4.8.2 test

Репозиторий

Репозиторий – это просто каталог на вашем компьютере. Здесь хранятся jar-файлы проекта, плагины или любые другие материалы, относящиеся к проекту. Всякий раз, когда нужно искать какую-либо зависимость, это делается в репозиториях. Maven инициализирует поиск из локального репозитория, затем из центрального и, наконец, из удаленного.

Локальный

Локальный репозиторий Maven – это папка на вашем компьютере, где хранятся все связанные с проектом элементы. Как только сборка Maven выполняется, Maven автоматически загружает все jar-файлы зависимостей в локальный репозиторий. По умолчанию локальным репозиторием maven является каталог user_home / m2.

Центральный

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

Читайте также:
Radio switch driver что это за программа

Удаленный

Когда Maven хочет загрузить зависимость, она переходит в удаленный репозиторий. Удаленный репозиторий – это репозиторий на веб-сервере, который широко используется для размещения внутренних проектов организации.

Преимущества и недостатки

  1. Maven дает легкий старт проекту в разных средах.
  2. Вы можете использовать Maven, чтобы легко собрать свой проект в соответствии с вашими требованиями.
  3. Вы можете легко добавить новые зависимости, написав код зависимости в pom-файле.
  1. Если код maven для существующей зависимости недоступен, то эту зависимость добавить нельзя.
  2. Установка Maven вместе с плагинами обязательна.

Источник: java-blog.ru

Maven

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark

Apache Maven – это фреймворк для автоматической сборки проектов на основе описания их структуры в специальных файлах на языке POM (Project Object Model). POM-файл представляет собой структурированный (упорядоченный) набор параметров для сборки проекта (например, версия проекта и зависимости) на языке XML (Extensible Markup Language) [1].

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark

Что такое Maven: основные особенности архитектуры

Мавен – это инструмент управления сборкой проектов, который базируется на плагиновой архитектуре (plugin architecture), позволяющей применять плагины для различных задач (например, компиляция, сборка, развертывание). Плагин – это независимый программный модуль, который подключается к основной программе (или проекту) для расширения ее возможностей (функционала).

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark

Структура Мавен-проекта задается в POM-файле и включает в себя следующие элементы:

  1. Репозитории – это специальные хранилища для сторонних (подгружаемых извне) библиотек. При сборке проекта Мавен ищет необходимые файлы библиоткек в локальном maven-репозитории. Если этот репозиторий не содержит указанной библиотеки, Мавен подключается к указанному maven-репозиторию в сети и копирует необходимые файлы в локальный репозиторий для возможности повторного использования при сборке нового проекта.
  2. Зависимости – это элементы, используемые для автоматической подгрузки необходимых библиотек из репозиториев. Зависимости также позволяют контролировать версии подгружаемых библиотек (например, можно подгрузить более новую или более старую версию).
  3. Менеджеры репозиториев – репозитории реализуется с помощью специальных менеджеров репозиториев Мавен (Maven Repository Manager), таких как Apache Archiva, Nexus, Artifactory, Codehaus Maven Proxy или Simple Maven Proxy. Менеджеры репозиториев отвечают за построение структуры и ее управление (например, добавление папок в корневой каталог, а также распределение файлов по этим папкам) [1].

Как появился Мавен: краткая история

Разработка Мавен началась в 2002 году канадским разработчиком Ясоном ван Зилом. В 2003 году появилась первая версия Maven 1.x, которая была опубликована 13 июля 2004 года как версия 1.0. Однако в этой версии Мавен были большие проблемы с производительностью из-за слишком большой конфигурации.

С целью устранить этот недостаток началась разработка Мавен 2.x в 2005 году, которая впервые была опубликована как Мавен 2.0 19 октября 2005 года. В 2008 году началась масштабная разработка третьей версии Мавен 3.x для возможности поддержки плагинов. После восьми альфа-релизов, в октябре 2010 года была опубликована версия Maven 3.0. Была также добавлена возможность совместимости Maven 3.0 с Maven 2. Последняя версия Maven 3.6.3 была опубликована 25 ноября 2019 года [1].

Сборка Spark-приложений с Maven

Одна из главных причин сборки Spark-приложений с помощью Мавен – это простота настройки: для добавления нового функционала в проект нужно всего лишь добавить новую зависимость для подгрузки необходимой библиотеки. Как уже упоминалось выше, зависимости являются частью конфигурации, описанной в POM-файле. Зависимости указываются в блоке . Каждая отдельная зависимость (для подгрузки новой библиотеки) выносится в отдельный подблок . Следующий код на языке XML отвечает за определение зависимостей для подгрузки библиотек, использующихся в приложении на базе фреймворка Spark [2]:

org.apache.spark spark-core_2.10 l.2.0 provided net.sf.jopt-simple jopt-simple 4.3 joda-time joda-time 2.0

Таким образом, благодаря автоматическому сборщику приложений Мавен, Spark-приложения могут легко компилироваться и развертываться в распределенной среде (на сервере приложений), освобождая разработчика от необходимости длительных «ручных» настроек. Это делает Maven неотъемлемой частью технологий работы с большими данными, включая Apache Spark, Kafka и другие технологии Big Data.

  • Графовые алгоритмы в Apache Spark
  • Машинное обучение в Apache Spark
  • Потоковая обработка в Apache Spark
  • Основы Apache Spark для разработчиков
  • Анализ данных с Apache Spark
  1. https://ru.wikipedia.org/wiki/Apache_Maven
  2. К.Харау, Э.Ковински, П.Венделл, М.Захария. Изучаем Spark: молниеносный анализ данных

Источник: spark-school.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru