Apache Maven — кратко
Если вы являетесь разработчиком Java, ваши повседневные действия во время работы над вашим проектом включают в себя: написание кода, компиляцию кода, тестирование кода, его упаковку в виде артефакта, такого как jar или war-файл, а затем развертывание этого артефакт на веб-сервер.
Есть много задач, о которых вам нужно позаботиться вручную, и, очевидно, вы можете автоматизировать эти задачи, используя библиотеку Apache Maven .
В этой статье мы поймем, что такое Apache Maven и как вы можете эффективно использовать его для создания и управления вашими java-проектами.
Во-первых, давайте разберемся с основами maven
Что такое Мавен?
Maven — это инструмент управления проектами, разработанный для помощи в управлении проектами, разработанными с использованием языков JVM, таких как Java и Scala. Основная задача инструментов управления проектами включает в себя:
- Сборка исходного кода
- Тестирование исходного кода
- Упаковка в банку, войну или уху
- Генерация java-документов
- Управление зависимостями
Теперь давайте продолжим и посмотрим, как установить Maven на нашу машину.
- Откройте https://maven.apache.org/ в своем браузере.
- Перейдите в раздел загрузки, загрузите zip-папку последней версии maven и распакуйте ее.
- Установите переменную пути среды. Добавьте JAVA_HOME и MAVEN_HOME.
- Добавьте путь maven в переменную среды. пример: F:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
Репозиторий Мавена:
Репозиторий Maven — это каталог упакованных файлов jar с pom.xml. Maven ищет зависимости в репозиториях. Существует три типа репозиториев maven.
- Локальный репозиторий
- Центральный репозиторий
- Удаленный репозиторий
Также мы можем изменить расположение локального репозитория в файле settings.xml, который находится в MAVEN_HOME/conf/settings.xml Пример: E:\apache-maven-3.1.1\conf\settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
</settings>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>e:/mavenlocalrepository</localRepository>
</settings>
Центральный репозиторий содержит множество общих библиотек, которые можно просмотреть по этому URL-адресу.http://search.maven.org/#browse.
Удаленный репозиторий Maven: удаленный репозиторий Maven находится в Интернете. Некоторые библиотеки могут отсутствовать в центральном репозитории, например библиотека JBoss и т. д., поэтому нам нужно определить удаленный репозиторий в файле pom.xml.
Структура проекта Maven:
Теперь давайте разберемся со структурой проекта Maven. Когда вы создаете проект maven, вы увидите папку с именем
- src — источник — который является корнем исходного кода нашего приложения и модульного теста приложения.
- src/main/java — который содержит исходный код нашего приложения, весь производственный код, который мы пишем для нашего приложения, находится внутри этой папки.
- src/main/resources — где мы храним все статические файлы, которые используем в нашем проекте. пример application.properties , файлы XML, файлы CSV и т. д.
- Если вы разрабатываете веб-приложение, то все файлы html и javascript будут находиться в этой папке.
- src/test/java — здесь мы пишем юнит-тест и интеграционный тест для нашего приложения
- pom.xml — содержит метаданные зависимостей проекта
- target — в этой папке maven хранит все скомпилированные файлы классов java
POM содержит метаданные проекта, а также отвечает за управление зависимостями для настройки плагинов, что помогает нам автоматизировать многие повторяющиеся задачи, вот основной файл 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.maven.application</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
- версия модели — версия модели всегда будет иметь значение 4.0.0, если вы не измените ее на другую версию maven. Например более высокие версии выше 3.0
- Простой pom-файл
- Супер пом файл
- Эффективный файл pom
Файл Super pom: вы можете найти файл super pom в каталоге установки maven по пути lib. А внутри jar-файла — maven-model-builder — можно найти пакет с именем org
Эффективный файл pom: Эффективный файл pom — это не что иное, как комбинация простых файлов pom и super pom. Это просто способ проверить всю информацию о файлах pom.xml в одном месте. Чтобы просмотреть эффективный файл pom, перейдите к типу терминала maven.
mvn-help: effective-pom
Maven имеет два типа зависимостей
- Зависимость от моментального снимка: зависимость от моментального снимка означает проект, который находится в активной разработке и является нестабильным.
- Зависимость от выпуска: как только проект завершен, он выпускается.
Мы можем контролировать видимость зависимости maven, используя области зависимостей. Есть 5 видов прицелов
- Компиляция: это область по умолчанию для всех зависимостей, а зависимости, отмеченные компиляцией, доступны внутри пути к классам проекта.
- Предоставлено: зависимость, которая предоставила область действия, будет предоставлена во время выполнения либо jdk, либо веб-сервером.
- Время выполнения: как следует из названия, зависимость, отмеченная временем выполнения, доступна только во время выполнения, но не во время компиляции.
- Тест: эти зависимости доступны только во время написания и выполнения теста.
- Системная область: аналогична предоставленной области, но единственная разница в том, что мы явно упомянули, где мы можем найти зависимость в системе. Вместо того, чтобы JDK или веб-сервер предоставляли эту зависимость во время выполнения, мы указываем системный путь, по которому maven может найти эту зависимость. Мы можем предоставить путь, используя системный путь
Жизненный цикл сборки Maven делится на 3 разных этапа:
- По умолчанию — в рамках этого шага maven выполняет множество задач,
- maven читает pom.xml и проверяет, есть ли у нас действительный xml или нет.
- Затем maven скомпилирует наш исходный код, создаст файлы классов и сохранит их в целевой папке.
- Затем на этапе тестирования, как часть теста, maven запускает модульный тест внутри проекта.
- package — как часть пакета, maven упаковывает исходный код в артефакт по нашему выбору, такой как jar, war, ear или zip-файлы.
- интеграционный тест — если наш проект содержит какие-либо интеграционные тесты и выполняется
- Verify — maven проверяет успешность интеграционного теста, запущенного на предыдущем этапе.
- install — maven установит созданный пакет в локальный репозиторий
- deploy — после установки maven развернётся в удалённый репозиторий.
2. Очистка: этот шаг в основном отвечает за очистку скомпилированных классов Java или сгенерированных метаданных. Пример: mvn чистая установка
3. Сайт: отвечает за создание документации по Java, которая присутствует в нашем проекте.
Maven значительно упрощает процесс сборки. Я надеюсь, что вы узнали и получили некоторые сведения об Apache Maven.
Спасибо за прочтение статьи. Пожалуйста, хлопайте, делитесь и комментируйте. это побудит меня написать больше таких статей. Поделитесь своими ценными предложениями, я ценю ваши честные отзывы!!!
Наиболее часто задаваемый вопрос на собеседовании на основе Java8 Stream — часть 1. Самый простой способ доступа к базе данных в JAVA. Перехват множественных исключений в Java- кодировании: поиск n-го числа Фибоначчи в JavaScript. Реальные сайты, которые платят от 50 до 100 долларов в час за корректуру книг . Объяснение Python
![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































