Объяснение Maven
Apache Maven - это инструмент автоматизации сборки для Java-проектов. Подумайте о Ant или Make, но гораздо более мощном и простом в использовании. Если вам когда-либо приходилось иметь дело со сборкой Java-проекта с зависимостями или особыми требованиями сборки, то вы, вероятно, пережили разочарования, которые Maven стремится устранить.
В этой статье я расскажу немного больше об этом инструменте, как он используется, и, надеюсь, отвечу на ваш вопрос - что такое Maven?
Чем полезен Maven?
Maven является проектом с открытым исходным кодом под Apache с 2003 года, а до этого началось с Sonatype. Учитывая его сильную поддержку и огромную популярность, Maven является очень стабильным и многофункциональным, предлагая многочисленные плагины, которые могут делать все, от создания PDF-версий документации вашего проекта до создания списка последних изменений из вашего SCM. И все, что требуется для добавления этой функциональности, - это небольшой дополнительный XML-код или дополнительный параметр командной строки.
У вас много зависимостей? Без проблем. Maven подключается к удаленным репозиториям (или вы можете настроить свои собственные локальные репозитории) и автоматически загружает все зависимости, необходимые для сборки вашего проекта.
Например, предположим, что у вас есть проект, в котором используется инструмент маршрутизации Apache Camel версии 2.10.6, но затем выпущена новая версия Camel, 2.11.1. Вместо того, чтобы заходить на веб-сайт Apache, загружать дистрибутив 2.11.1 и заменять им 2.10.6, вы можете просто указать Maven использовать новый дистрибутив, и работа будет выполнена за вас. Не то чтобы сложно загрузить один пакет Java и поместить его в папку вашего проекта, но подумайте о том, чтобы делать это для нескольких зависимостей каждый раз при обновлении одного из них. Это небольшой промежуток времени, но он быстро накапливается.
Как вы используете Maven?
Использовать Maven чрезвычайно просто, если вы изучите несколько основных концепций. Каждый проект содержит файл, называемый POM ( объектная модель проекта ), который представляет собой просто XML-файл, содержащий сведения о проекте. Некоторые из этих деталей могут включать имя проекта, версию, тип пакета, зависимости, плагины Maven и т. Д.
(Очень) простой файл pom.xml может выглядеть примерно так:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackabuse.myproject</groupId>
<artifactId>myproject</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>myproject</name>
<url>http://stackabuse.com</url>
<build>
<plugins>
<plugin>
<artifactId>maven-myquery-plugin</artifactId>
<version>1.0</version>
<configuration>
<url>http://foobar.com</url>
<timeout>10</timeout>
<options>
<option>foo</option>
<option>bar</option>
</options>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-http</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Не беспокойтесь обо всех мелких деталях этого XML, просто обратите внимание на то, какое содержимое находится в pom.xml, например, имя, версия и зависимости. Здесь будет происходить большая часть вашего взаимодействия с Maven, а остальное - через вызовы командной строки.
Чтобы действительно запустить Maven, все, что вам нужно сделать, это перейти в папку проекта и запустить:
mvn [command]
Команда может состоять из нескольких вещей, но это лишь некоторые из них:
test
: запускает все тесты для проекта.clean
: удаляет все старые файлы сборкиpackage
: упаковывает проект в jar (или другой формат в зависимости от того, что было указано)install
: помещает проект в локальный репозиторий Maven.deploy
: помещает проект в удаленный репозиторий Maven.
Maven - огромная тема, и это краткое введение было предназначено только для того, чтобы дать вам представление о том, что делает Maven, поэтому обязательно ознакомьтесь с ресурсами ниже, чтобы получить дополнительную информацию о том, как на самом деле его использовать.
Учить больше
Хотите узнать больше об Apache Maven? Попробуйте пройти онлайн-курс, например Maven Crash Course{.udemy-link} , в котором будет гораздо больше деталей, чем в этой статье. Он научит вас всем, как использовать этот важный инструмент автоматизации Java, например, как его настроить, ключевые концепции и даже интегрировать его в Eclipse. Серьезно, сэкономьте время и извлеките уроки из одного из лучших ресурсов.