Этот пост был первоначально опубликован в Этот пост был первоначально опубликован в
Maven очень часто используется в отрасли, и я подумал, что было бы неплохо рассказать об основах Maven в этой статье, чтобы его можно было эффективно использовать 😄
В этой статье будут рассмотрены такие вещи, как основы maven, плагины maven, зависимости maven и жизненный цикл сборки maven.
Maven был создан для того, чтобы иметь стандартный способ создания проектов. Одной из его мощных функций является управление зависимостями.
Maven обычно используется для управления зависимостями, но это не единственное, на что способен maven.
Если вы не знаете, что такое управление зависимостями, не волнуйтесь 😄 . Я также расскажу об этом в этой статье.
Также убедитесь, что Maven установлен в ПУТИ так что команды mvn работают.
вы можете проверить, установлен ли maven и доступен ли к нему доступ с помощью команды
mvn -v
Также убедитесь, что установлен параметр JAVA_HOME .
По умолчанию Maven будет использовать jdk, который вы предоставили в JAVA_HOME. Это можно переопределить, но для этой статьи мы будем использовать jdk, предоставленный в JAVA_HOME.
Обычно IDE, такую как eclipse, можно использовать для легкого создания проектов maven. Но в этой статье я буду запускать команды maven из командной строки, чтобы шаги были четко понятны.
Выполните следующую команду, чтобы создать проект.
Архетип в приведенной выше команде – это не что иное, как образец шаблона проекта. group dId указывает, к какой группе относится ваш проект, и artifactId – это название проекта.
Как только вы запустите приведенную выше команду, maven может потребоваться около минуты или около того, чтобы загрузить необходимые плагины и создать проект.
Теперь создана папка с именем first-maven-app. Откройте папку, и вы увидите файл с именем pom.xml
POM расшифровывается как Объектная модель проекта. pom.xml содержит всю подробную информацию о вашем проекте, и именно здесь вы расскажете maven, что он должен делать.
идентификатор группы и artifactId – это те же значения, которые мы имеем в командной строке.
упаковка – это формат упаковки артефакта. Значение по умолчанию – jar . У него могут быть и другие значения, такие как ear, war, tar и так далее.
version указывает номер версии артефакта. Если присутствует SNAPSHOT , то это указывает на то, что версия все еще находится в разработке и может быть нестабильной. Если номер версии не имеет SNAPSHOT
name – это название проекта
Скоро я расскажу о зависимостях и плагинах в Maven.
Супер ПОМПОН
pom.xml как вы можете видеть, он довольно мал. Причина этого в том, что большая часть конфигурации присутствует в чем-то, называемом Super POM, которое поддерживается внутри Maven.
pom.xml расширяет Super Pom, чтобы получить всю конфигурацию, присутствующую в super Pom.
Одна из конфигураций, присутствующих в Super Pom, указывает на следующее
Весь исходный код java находится внутри src/main/java
Весь тестовый код java присутствует внутри src/test/java
Я упомянул здесь только эту конфигурацию, поскольку в этой статье мы будем иметь дело как с исходным кодом, так и с тестовым кодом.
Существует множество доступных плагинов maven. Зная, как хорошо использовать плагины, Maven можно использовать для создания удивительных вещей 😄
Обычно при написании кода мы будем использовать множество существующих библиотек. Эти существующие библиотеки – не что иное, как зависимости. Maven можно легко использовать для управления зависимостями.
В pom.xml вашего проекта вы можете увидеть следующую зависимость
junitjunit3.8.1test
Эта зависимость говорит о том, что нам понадобится junit . Junit используется для написания модульных тестов для кода java. Аналогичным образом можно добавить множество других зависимостей.
Допустим, вы хотите обработать Джейсона в коде. Затем вы можете добавить gson зависимость, как показано ниже
Допустим, вы добавляете зависимость A к проекту. Сейчас A зависит от зависимости , вызываемой как B . B зависит от зависимости , называемой C .
Поскольку вы используете A в проекте, в идеале, вам также понадобится B и C .
Но, к счастью, этого достаточно, если вы добавите только A в pom.xml . Потому что Maven может выяснить, что A зависит от B, а B зависит от C. Таким образом, внутренне Maven автоматически загрузит B и C .
Вполне возможно, что есть некоторые артефакты, которые являются частными для вашей компании. В этом случае вы можете поддерживать частный репозиторий maven в вашей организации. Я не буду освещать эту часть в этом руководстве.
Добавление тестового класса
Поскольку зависимость junit присутствует в проекте, мы можем добавить тестовые классы.
Создайте следующую структуру папок
src/test/java/com/test/app/AppTest.java
AppTest.java является тестовым классом
Скопируйте следующий код в AppTest.java
package com.first.app;
import junit.framework.TestCase;
import java.util.List;
import java.util.ArrayList;
public class AppTest extends TestCase
{
public AppTest( String testName )
{
super( testName );
}
public void testGetSum()
{
List items = new ArrayList();
items.add(1);
items.add(2);
items.add(3);
assertEquals( 6, App.getSum(items) );
}
}
Этот класс проверяет функцию getSum(), присутствующую в классе App.
Maven следует жизненному циклу сборки для создания и распространения артефактов. Существует 3 основных жизненных цикла
Жизненный цикл по умолчанию : Это касается создания и развертывания артефакта.
Чистый жизненный цикл : Это касается очистки проекта
Жизненный цикл сайта : Это касается документации сайта. Расскажу об этом в другой статье
Жизненный цикл состоит из фаз. Вот некоторые из важных этапов жизненного цикла default
утверждать : Проверьте, доступна ли вся необходимая информация для проекта
компилятор : Используется для компиляции исходных файлов. Выполните следующую команду для компиляции
mvn compile
После выполнения этой команды создается папка с именем target со всеми скомпилированными файлами.
test : Используется для запуска всех модульных тестов, присутствующих в проекте. Вот почему была необходима зависимость от Junit. Используя Junit, можно писать модульные тесты. Тестовые классы можно запускать с помощью команды
mvn test
package : Это позволит выполнить все вышеуказанные этапы, а затем упаковать артефакт. Здесь он упакует его в файл jar , поскольку pom указывает, что требуется jar. Для этого выполните следующую команду
mvn package
Файл jar создается внутри папки target
проверить : Это позволит убедиться, что в проекте соблюдены критерии качества
устанавливать : Это приведет к установке пакета в локальный репозиторий. Расположение локального репозитория обычно ${user.home}/.m2/repository . Для этого используйте следующую команду
mvn install
развернуть : Это используется для развертывания пакета в удаленном репозитории
Еще одна команда, которая обычно используется, – это команда очистки, которая приведена ниже
mvn clean
Эта команда очищает все, что находится внутри папки target
Теперь вы знаете, как использовать Maven. В этой статье рассматриваются только основы pom, плагины, зависимости и жизненный цикл сборки. Чтобы узнать больше о Maven, ознакомьтесь со ссылками, которые я привел выше.
Счастливого кодирования 😄
Не стесняйтесь связаться со мной в LinkedIn или подписаться на меня в Twitter.
Если вам понравился этот пост, вы можете зайти на мой сайт https://adityasridhar.com для других подобных сообщений