Поиск по сайту:

Более 20 команд и параметров Maven (шпаргалка)


Если вы работаете с Java, вы должны знать Maven. Maven — самый популярный инструмент управления проектами и зависимостями для приложений Java. Maven предоставляет множество команд и опций, помогающих нам в повседневных задачах.

Команды Maven

Давайте рассмотрим некоторые популярные и обязательные к знанию команды maven. Мы будем использовать пример проекта Maven, чтобы продемонстрировать вывод команды.

1. мвн чистый

Эта команда очищает проект maven, удаляя целевой каталог. Соответствующие сообщения, выводимые командой, показаны ниже.

$ mvn clean
...
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-example-jar ---
[INFO] Deleting /Users/pankaj/Desktop/maven-examples/maven-example-jar/target
...
$

2. компилятор mvn: скомпилировать

Эта команда компилирует исходные классы Java проекта maven.

$ mvn compiler:compile
...
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-cli) @ maven-example-jar ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/classes
...
$

3. компилятор mvn: testCompile

Эта команда компилирует тестовые классы проекта maven.

$ mvn compiler:testCompile
...
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-cli) @ maven-example-jar ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/test-classes
...
$

4. пакет mvn

Эта команда создает проект maven и упаковывает его в JAR, WAR и т. д.

$ mvn package
...
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/classes
...
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar ---
[INFO] Surefire report directory: /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.journaldev.maven.classes.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar ---
[INFO] Building jar: /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
...

Вывод показывает расположение JAR-файла непосредственно перед сообщением \BUILD SUCCESS. Обратите внимание, что цель пакета выполняет цели компиляции, testCompile и тестирования перед упаковкой сборки.

5. мвн установить

Эта команда создает проект maven и устанавливает файлы проекта (JAR, WAR, pom.xml и т. д.) в локальный репозиторий.

$ mvn install
...
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-example-jar ---
...
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar ---
...
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-example-jar ---
...
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar ---
...
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar ---
...
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar ---
...
[INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-example-jar ---
[INFO] Installing /Users/pankaj/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar to /Users/pankaj/.m2/repository/com/journaldev/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/pankaj/Desktop/maven-examples/maven-example-jar/pom.xml to /Users/pankaj/.m2/repository/com/journaldev/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.pom
...

6. развертывание mvn

Эта команда используется для развертывания артефакта в удаленном репозитории. Удаленный репозиторий должен быть правильно настроен в теге распределения управления файлом pom.xml проекта. Записи сервера в файле maven settings.xml используются для предоставления сведений об аутентификации.

7. mvn проверить

Эта команда проверяет проект maven на предмет того, что все правильно и доступна вся необходимая информация.

8. mvn зависимость: дерево

Эта команда создает дерево зависимостей проекта maven.

$ mvn dependency:tree
...
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ Mockito-Examples ---
[INFO] com.journaldev.mockito:Mockito-Examples:jar:1.0-SNAPSHOT
[INFO] +- org.junit.platform:junit-platform-runner:jar:1.2.0:test
[INFO] |  +- org.apiguardian:apiguardian-api:jar:1.0.0:test
[INFO] |  +- org.junit.platform:junit-platform-launcher:jar:1.2.0:test
[INFO] |  \- org.junit.platform:junit-platform-suite-api:jar:1.2.0:test
[INFO] |     \- org.junit.platform:junit-platform-commons:jar:1.2.0:test
[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test
[INFO] |  +- org.junit.platform:junit-platform-engine:jar:1.2.0:test
[INFO] |  |  \- org.opentest4j:opentest4j:jar:1.1.0:test
[INFO] |  \- org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test
[INFO] +- org.mockito:mockito-junit-jupiter:jar:2.19.0:test
[INFO] |  \- org.mockito:mockito-core:jar:2.19.0:test
[INFO] |     +- net.bytebuddy:byte-buddy:jar:1.8.10:test
[INFO] |     +- net.bytebuddy:byte-buddy-agent:jar:1.8.10:test
[INFO] |     \- org.objenesis:objenesis:jar:2.6:test
[INFO] \- org.testng:testng:jar:6.14.3:test
[INFO]    +- com.beust:jcommander:jar:1.72:test
[INFO]    \- org.apache-extras.beanshell:bsh:jar:2.0b6:test

9. mvn зависимость:анализировать

Эта команда анализирует проект maven для выявления неиспользуемых объявленных и используемых необъявленных зависимостей. Это полезно для уменьшения размера сборки путем выявления неиспользуемых зависимостей и последующего удаления их из файла pom.xml.

$ mvn dependency:analyze
...
[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ Mockito-Examples ---
[WARNING] Used undeclared dependencies found:
[WARNING]    org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test
[WARNING]    org.mockito:mockito-core:jar:2.19.0:test
[WARNING] Unused declared dependencies found:
[WARNING]    org.junit.platform:junit-platform-runner:jar:1.2.0:test
[WARNING]    org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test
[WARNING]    org.mockito:mockito-junit-jupiter:jar:2.19.0:test
...
$

10. Архетип mvn: сгенерировать

Архетипы Maven — это набор инструментов для создания шаблонов проектов maven. Мы можем использовать эту команду для создания скелета проекта maven различных типов, таких как JAR, веб-приложение, сайт maven и т. д. Рекомендуемая литература: Создание проекта Java с использованием архетипов Maven

11. mvn сайт: сайт

Эта команда создает сайт для проекта. После выполнения этой команды вы заметите каталог «сайт» в целевом каталоге. В каталоге сайта будет несколько файлов HTML, которые предоставляют информацию, связанную с проектом.

12. тест мвн

Эта команда используется для запуска тестовых случаев проекта с помощью maven-surefire-plugin.

$ mvn test
...
[INFO] --- maven-surefire-plugin:2.22.0:test (default-test) @ Mockito-Examples ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
first-element
second-element
Employee setName Argument = Pankaj
...
[INFO] Results:
[INFO] 
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
...
$

13. компиляция mvn

Он используется для компиляции исходных классов Java проекта.

$ mvn compile
...
[INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ Mockito-Examples ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 10 source files to /Users/pankaj/Desktop/maven-examples/Mockito-Examples/target/classes
...
$

14. мвн проверить

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

Параметры Maven

Maven предоставляет множество параметров командной строки для изменения процесса сборки maven. Давайте рассмотрим некоторые важные параметры maven.

15. мвн -помощь

Эта команда выводит использование maven и все доступные параметры для использования.

16. Пакет mvn -f maven-example-jar/pom.xml

Эта команда используется для сборки проекта из другого места. Мы предоставляем расположение файла pom.xml для сборки проекта. Это полезно, когда вам нужно запустить сборку maven из скрипта.

17. mvn -o пакет

Эта команда используется для запуска сборки maven в автономном режиме. Это полезно, когда у нас есть все необходимые загруженные JAR-файлы в локальном репозитории, и мы не хотим, чтобы Maven искал какие-либо JAR-файлы в удаленном репозитории.

18. mvn -q пакет

Запускает сборку maven в тихом режиме, отображаются только результаты тестов и ошибки.

$ mvn -q package         

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.journaldev.maven.classes.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
$

19. mvn -X пакет

Выводит версию maven и запускает сборку в режиме отладки. Это противоположно тихому режиму, и вы увидите много отладочных сообщений в консоли.

20. мвн -в

Используется для отображения информации о версии maven.

$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/pankaj/Downloads/apache-maven-3.6.3
Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"
$

21. mvn -V пакет

Эта команда печатает версию maven, а затем продолжает сборку. Это эквивалентно командам mvn -v;mvn package.

22. Пакет mvn -DskipTests

Системное свойство skipTests используется для пропуска модульных тестов из цикла сборки. Мы также можем использовать -Dmaven.test.skip=true, чтобы пропустить выполнение тестовых случаев.

23. мвн -Т 4 пакет

Эта команда указывает maven запускать параллельные сборки с использованием указанного количества потоков. Это полезно в многомодульных проектах, где модули могут создаваться параллельно. Это может сократить время сборки проекта.

Шпаргалка по командам Maven

Рекомендации

  • Подключаемые модули Maven
  • Справочник по параметрам Maven CLI