Часто используемые команды Maven
Команды Maven следуют следующему шаблону:
mvn [选项] [生命周期阶段] [目标]
Проверка версии Maven
Пример
Эта команда отобразит установленную версию Maven, версию Java и другую информацию.
Команды жизненного цикла Maven
Maven основан на концепции жизненных циклов сборки, включающей три основных жизненных цикла:
- clean: очистить проект
- default (build): собрать проект
- site: сгенерировать документацию проекта
Очистить проект
Пример
Эта команда удалитtargetкаталог, то есть удалит все файлы, созданные сборкой.
Скомпилировать проект
Пример
Скомпилировать исходный код. Скомпилированные файлы классов будут помещены вtarget/classesкаталог.
Запустить тесты
Пример
Запустить все тестовые случаи в проекте.
Упаковать проект
Пример
Упакуйте проект в соответствии с типом упаковки (например, jar, war), указанным в POM-файле.
Установить в локальный репозиторий
Пример
Собрать и установить проект в локальный репозиторий Maven, чтобы другие проекты могли использовать его как зависимость.
Развернуть в удалённом репозитории
Пример
Скопировать итоговый пакет проекта в удалённый репозиторий для использования другими разработчиками и проектами.
Команды управления зависимостями
Просмотреть дерево зависимостей проекта
Пример
Отобразить дерево зависимостей проекта, что помогает анализировать связи зависимостей и разрешать конфликты зависимостей.
Скачать исходный код
Пример
Загрузить исходный код зависимостей проекта.
Проанализировать зависимости
Пример
Проанализировать зависимости, которые используются, но не объявлены, а также зависимости, которые объявлены, но не используются.
Команды создания проекта
Создать простой проект
Пример
Создать простой проект на Java с использованием системы архетипов Maven.
Создать веб-проект
Пример
Создать простой проект веб-приложения.
Другие полезные команды
Пропустить тесты
Пример
Собрать проект и установить его в локальный репозиторий, но пропустить фазу тестирования.
Запустить конкретные тесты
Пример
Запустить только указанный тестовый класс.
Пример
Запустить только конкретный тестовый метод в указанном тестовом классе.
Обновить зависимости
Пример
Проверить, для каких зависимостей проекта доступны более новые версии.
Сгенерировать документацию сайта
Пример
Сгенерировать документацию сайта проекта, включая различные отчёты.
Запустить определённую фазу
Пример
Сначала выполните жизненный цикл clean, затем выполните жизненный цикл по умолчанию до фазы package.
Комбинирование команд Maven
Команды Maven можно комбинировать для повышения эффективности:
Пример
Сначала очистите проект, затем скомпилируйте, протестируйте и установите в локальный репозиторий.
Пример
Очистить проект, упаковать, но не запускать тесты.
Устранение типичных проблем
Принудительно обновить snapshot-зависимости
Пример
-UПараметр заставляет Maven проверять наличие обновлённых версий зависимостей в удалённых репозиториях.
Автономный режим
Пример
-oПараметр заставляет Maven работать в автономном режиме, используя только зависимости из локального репозитория.
Режим отладки
Пример
-XПараметр включает вывод отладочной информации, показывая подробные сведения о выполнении.
Основные команды сборки
| Команда | Назначение | Выполненная фаза жизненного цикла |
|---|---|---|
mvn clean | Deletetarget/каталога | 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"Другие расширения