Часто используемые команды Maven

Команды Maven следуют следующему шаблону:

mvn [选项] [生命周期阶段] [目标]

Проверка версии Maven

Пример

mvn -v

Эта команда отобразит установленную версию Maven, версию Java и другую информацию.


Команды жизненного цикла Maven

Maven основан на концепции жизненных циклов сборки, включающей три основных жизненных цикла:

  1. clean: очистить проект
  2. default (build): собрать проект
  3. site: сгенерировать документацию проекта

Очистить проект

Пример

mvn clean

Эта команда удалитtargetкаталог, то есть удалит все файлы, созданные сборкой.

Скомпилировать проект

Пример

mvn compile

Скомпилировать исходный код. Скомпилированные файлы классов будут помещены вtarget/classesкаталог.

Запустить тесты

Пример

mvn test

Запустить все тестовые случаи в проекте.

Упаковать проект

Пример

mvn package

Упакуйте проект в соответствии с типом упаковки (например, jar, war), указанным в POM-файле.

Установить в локальный репозиторий

Пример

mvn install

Собрать и установить проект в локальный репозиторий Maven, чтобы другие проекты могли использовать его как зависимость.

Развернуть в удалённом репозитории

Пример

mvn deploy

Скопировать итоговый пакет проекта в удалённый репозиторий для использования другими разработчиками и проектами.


Команды управления зависимостями

Просмотреть дерево зависимостей проекта

Пример

mvn dependency:tree

Отобразить дерево зависимостей проекта, что помогает анализировать связи зависимостей и разрешать конфликты зависимостей.

Скачать исходный код

Пример

mvn dependency:sources

Загрузить исходный код зависимостей проекта.

Проанализировать зависимости

Пример

mvn dependency:analyze

Проанализировать зависимости, которые используются, но не объявлены, а также зависимости, которые объявлены, но не используются.


Команды создания проекта

Создать простой проект

Пример

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Создать простой проект на Java с использованием системы архетипов Maven.

Создать веб-проект

Пример

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

Создать простой проект веб-приложения.


Другие полезные команды

Пропустить тесты

Пример

mvn install -DskipTests

Собрать проект и установить его в локальный репозиторий, но пропустить фазу тестирования.

Запустить конкретные тесты

Пример

mvn test -Dtest=TestClassName

Запустить только указанный тестовый класс.

Пример

mvn test -Dtest=TestClassName#testMethodName

Запустить только конкретный тестовый метод в указанном тестовом классе.

Обновить зависимости

Пример

mvn versions:display-dependency-updates

Проверить, для каких зависимостей проекта доступны более новые версии.

Сгенерировать документацию сайта

Пример

mvn site

Сгенерировать документацию сайта проекта, включая различные отчёты.

Запустить определённую фазу

Пример

mvn clean package

Сначала выполните жизненный цикл clean, затем выполните жизненный цикл по умолчанию до фазы package.


Комбинирование команд Maven

Команды Maven можно комбинировать для повышения эффективности:

Пример

mvn clean install

Сначала очистите проект, затем скомпилируйте, протестируйте и установите в локальный репозиторий.

Пример

mvn clean package -DskipTests

Очистить проект, упаковать, но не запускать тесты.


Устранение типичных проблем

Принудительно обновить snapshot-зависимости

Пример

mvn clean install -U

-UПараметр заставляет Maven проверять наличие обновлённых версий зависимостей в удалённых репозиториях.

Автономный режим

Пример

mvn -o package

-oПараметр заставляет Maven работать в автономном режиме, используя только зависимости из локального репозитория.

Режим отладки

Пример

mvn -X clean install

-XПараметр включает вывод отладочной информации, показывая подробные сведения о выполнении.


Основные команды сборки

КомандаНазначениеВыполненная фаза жизненного цикла
mvn cleanDeletetarget/каталогаclean
mvn validateПроверить, что проект корректенvalidate
mvn compileСкомпилировать основной исходный кодcompile
mvn test-compileСкомпилировать тестовый кодtest-compile
mvn testЗапустить модульные тестыtest
mvn packageУпаковать проектpackage
mvn verifyЗапустить интеграционные тестыverify
mvn installУстановить в локальный репозиторийinstall
mvn deployРазвернуть в удалённом репозиторииdeploy

Типичный рабочий процесс разработки:

mvn clean compile test package

Команды управления зависимостями

КомандаНазначение
mvn dependency:treeПоказать дерево зависимостей
mvn dependency:analyzeПроанализировать проблемы зависимостей
mvn dependency:copy-dependenciesСкопировать зависимости в каталог
mvn dependency:purge-local-repositoryОчистить локальный кэш зависимостей
mvn versions:display-dependency-updatesПроверить обновления зависимостей
# 查看依赖树
mvn dependency:tree

# 检查可用更新
mvn versions:display-dependency-updates

Команды, связанные с плагинами

КомандаНазначение
mvn help:describe -Dplugin=插件名Просмотр информации о плагине
mvn help:effective-pomПросмотр эффективного POM
mvn 插件前缀:目标Прямой запуск цели плагина
# 查看compiler插件信息
mvn help:describe -Dplugin=compiler

# 直接运行compiler插件的compile目标
mvn compiler:compile

Команды, связанные с тестированием

КомандаНазначение
mvn testЗапустить все тесты
mvn -Dtest=测试类名 testЗапуск указанного тестового класса
mvn -Dtest=测试类名#方法名 testЗапуск указанного тестового метода
mvn -DskipTests=true packageПропустить тесты
# 只运行UserServiceTest类
mvn -Dtest=UserServiceTest test

# 只运行UserServiceTest中的testCreate方法
mvn -Dtest=UserServiceTest#testCreate test

Команды для многомодульного проекта

КомандаНазначение
mvn -pl 模块名 命令Выполнить команду для указанного модуля
mvn -am -pl 模块名 命令Выполнить команду и обработать зависимые модули
mvn -rf 模块名 命令Продолжить выполнение с указанного модуля
# 只编译service模块
mvn -pl service compile

# 编译web模块及其依赖的模块
mvn -am -pl web compile

Продвинутое использование

КомандаНазначение
mvn -T 4 installПараллельная сборка с 4 потоками
mvn -o packageЗапуск в автономном режиме
mvn -X clean installВключить отладочный вывод
mvn -U clean installПринудительно обновить snapshot-зависимости
mvn release:prepareПодготовка релиза проекта
mvn release:performВыполнение релиза проекта
# 并行构建(4线程)
mvn -T 4 clean install

# 强制更新snapshot依赖
mvn -U clean install

Распространённые комбинации команд

Комбинированная командаНазначение
mvn clean installОчистка и переустановка
mvn clean package -DskipTestsОчистка, упаковка и пропуск тестов
mvn clean testОчистка и запуск тестов
mvn clean deployОчистка и развёртывание

Практические советы

Быстрый просмотр информации о проекте:

mvn help:effective-pom
mvn help:describe -Dcmd=compile

Отладка проблем сборки:

mvn -X clean install

Пропустить проверки:

mvn install -Dcheckstyle.skip=true -Dpmd.skip=true

Указать профиль:

mvn install -P production

Показать время сборки:

mvn install --batch-mode | grep "Total time"
Другие расширения