Maven является инструментом с открытым исходным кодом, который необходим для построения, управления и автоматизации Java-проектов. Как и большинство фреймворков, Maven создан для решения задач, с которыми разработчики сталкиваются ежедневно. Инструмент особенно полезен для новичков.
Maven может создавать собственную структуру проектов, облегчает процесс подключения необходимых библиотек, управляет отчетностями, зависимостями и документацией. Java-программисту не нужно уделять внимание каждому из этапов сборки проекта — все необходимые параметры фреймворка уже настроены по умолчанию.
1. Для установки фреймворка скачайте его актуальную версию. Минимально необходимое свободное место на диске — 500 Мб.
2. Распакованный архив переместите в удобную для вас директорию. В Windows путь к Maven может выглядеть как C:\Program Files\maven\, в Linux — /opt/maven.
3. Введите mvn -version в командную строку, чтобы проверить корректность установки фреймворка.
4. Далее создайте новый проект в IntelliJIDEA.
5. Заполните поля в появившемся диалоговом окне.
Проект также можно создать в удобном для вас месте. Его структура выглядит так:
Dependency manager в Maven обеспечивает проект необходимыми для работы библиотеками. Просто добавьте их в список зависимостей фреймворка.
Например:
Для простой и удобной работы с файлами добавим библиотеку Apache Commons IO. Для этого в pom.xml необходимо добавить несколько строк:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
После их добавления файл будет выглядеть так:
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>example.com</groupId> <artifactId>example</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> </dependencies> </project>
Чтобы библиотека была готова к использованию, необходимо разрешить IntelliJ IDEA импортировать зависимость.
import org.apache.commons.io.FileUtils; import java.io.File; public class TestMaven { public static void main(String[] args) { File tempDirectory = FileUtils.getTempDirectory(); } }
Все последующие зависимости также записываются в <dependencies/>. Их можно располагать в любой последовательности.
Информацию о библиотеках можно узнать на сайте самой библиотеки или же в Maven-репозитории.
Maven-репозиторий — это директория, в которой находятся плагины, библиотеки, JAR и другие артефакты, необходимые для работы Maven.
Виды репозиториев:
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.companyname.projectgroup</groupId> <artifactId>Tutorials</artifactId> <version>1.0</version> <dependencies> <dependency> <groupId>net.proselyte.private-lib</groupId> <artifactId>private-lib</artifactId> <version>1.0.0</version> </dependency> <dependencies> <repositories> <repository> <id>proselyte.lib1</id> <url>http://download.proselyte.net/maven2/lib1</url> </repository> <repository> <id>proselyte.lib2</id> <url>http://download.proselyte.net/maven2/lib2</url> </repository> </repositories> </project>
Сборка Java-проекта в Maven состоит из 9 фаз:
1. Clean — удаление файлов из каталога target;
2. Validate — проверка данных, необходимых для сборки;
3. Compile — компиляция файлов;
4. Test — запуск тестов;
5. Package — упаковка скомпилированных файлов в архивы;
6. Verify — верификация упакованных файлов;
7. Install — установка в локальный репозиторий;
8. Site — создание документации к проекту;
9. Deploy — копирование архива в удаленный репозиторий.
Запустить каждую из фаз можно с помощью командной строки или Intellij IDEA.
Плагины Maven используются для создания JAR-, WAR-файлов, юнит-тестов кода, создания документации и отчетов, компиляции файлов.
Плагины сборки конфигурируются в файле pom.xml внутри тегов <build></build>, а плагины отчетов — в <reporting></reporting>.
Самые распространенные и часто используемые плагины:
Например:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3.2</version> <configuration> <finalName>myJar</finalName> </configuration> </plugin>
Пример сборки JAR-пакета:
<plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin>
Пример с параметром filesets:
<plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> <configuration> <filesets> <fileset> <directory>output-resources</directory> </fileset> </filesets> </configuration> </plugin>
Например:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.20</version> <configuration> <includes> <include>Sample.java</include> </includes> <excludes> <exclude>**/TestCircle.java</exclude> <exclude>**/TestSquare.java</exclude> </excludes> </configuration> </plugin>
Например, для создания автономной документации для проекта плагин Javadoc необходимо добавить в раздел <build> файла pom.xml.
<build> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.9.1</version> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <docfilessubdirs>true</docfilessubdirs> </configuration> </plugin> </build>
Например:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
Например, у плагина Antrun должен быть <target>.
<plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <phase> <!-- a lifecycle phase --> </phase> <configuration> <target> <!-- Разместите здесь любую задачу Ant. --> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins>
Полный список плагинов Maven можно найти здесь.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…