Работа мечты в один клик 💼

💭Мечтаешь работать в Сбере, но не хочешь проходить десять кругов HR-собеседований? Теперь это проще, чем когда-либо!
💡AI-интервью за 15 минут – и ты уже на шаг ближе к своей новой работе.
Как получить оффер?
📌 Зарегистрируйся
📌 Пройди AI-интервью
📌 Получи обратную связь сразу же!
HR больше не тянут время – рекрутеры свяжутся с тобой в течение двух дней! 🚀
Реклама. ПАО СБЕРБАНК, ИНН 7707083893. Erid 2VtzquscAwp
Мавен – это фреймворк автоматической сборки проектов с широким функционалом – достаточно широким, чтобы неподготовленный разработчик, зашедший в эти дебри, заработал головную боль, сломал себе проект и ногу, а то и обе. Сегодня мы попробуем буквально за 10 минут освоить главные фишки мавен : управление зависимостями, в том числе транзитивными, и автоматическую сборку. Если вдруг вы не знакомы с понятием транзитивных зависимостей, это цепочка A ← B ← C, где A зависит от В, а В от С. Maven позволяет не запариваться по этому поводу, и если вам нужен именно А, указывать только его, об остальном позаботится за вас.
Я предполагаю, что у вас уже установлена java, если нет, то срочно это исправьте. Maven использует декларативный подход, где все инструкции записываются на языке разметки POM – обычном XML с рядом предопределенных сущностей. В данной статье примеры будут достаточно просты, так что курсы XML пока можно отложить.
Установка Maven.
Задача проста.
- Идем на главный сайт проекта, скачиваем подходящий для вашей системы архив и распаковываем в удобную директорию, желательно без кириллицы в названии.
- Прописываем директорию в переменные окружения PATH.
- Рекомендую проверить наличие в PATH JAVA_HOME.
Первый проект Maven
Все современные IDE позволяют создать проект maven буквально двумя кликами, но мы не станем срезать путь. Для создания простейшей директории запустите в консоли команду:
mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=test-app
Мы создали классический "Hello, world", разберём его в деталях. Первое, во что мы упираемся, – это archetype
, так в Maven называются шаблоны. Команда archetype:generate
создает проект по архетипу. В нашем случае id по умолчанию приравнивается к 15 или maven-archetype-quickstart
.
Чтобы задать шаблон, просто добавьте в команду
-DarchetypeArtifactId=maven-archetype-quickstart
Полный список доступных шаблонов можно посмотреть на сайте или отдельно в консоли вбить mvn archetype:generate
. Следом идет archetypeGroupId
– что-то вроде пространства имён шаблонов. GroupId
– обычно используется для указания производителя. Artifact
– это название нашего проекта. Собственно, артефакты – это главная сущность в Maven, из них состоит всё.
На выходе получаем такую структуру:
test-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
В корне видим сгенерированный файл 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>test-app</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Большая часть этого файла сгенерирована и не нуждается в корректировке на стартовом этапе, кроме тега dependencies
, именно здесь нужно будет объявлять зависимоcти, каждую в отдельном теге dependency
. Сейчас там указана только библиотека для тестирования junit
.
Важные тонкости
Напоследок хочу обратить внимание на несколько пунктов. По умолчанию Maven работает с java 1.6, чтобы это поправить, нужно внутри тега project добавить следующий код, заменив {Ваша версия java}
на соответствующий номер.
<properties>
<maven.compiler.release>{Ваша версия java}</maven.compiler.release>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</pluginManagement>
</build>
Поздравляю, проделанной работы достаточно, чтобы прописать команду сборки:
mvn package
Фреймврок автоматически пройдет цепочку из 6 этапов, и теперь остается только запустить:
java -cp target/test-app-1.0-SNAPSHOT.jar com.mycompany.app.App
Наслаждаемся результатом трудов! =)
Этого должно быть достаточно для базового понимания Maven. Если вы загорелись идеей освоить этот инструмент и использовать весь его функционал, стоит начать с детального изучения super POM, шаблонов и плагинов. Удачи вам в освоении новых рубежей ;)
Комментарии