웹사이트 검색

20개 이상의 Maven 명령 및 옵션(치트 시트)


Java에서 작업하는 경우 Maven을 알아야 합니다. Maven은 Java 애플리케이션을 위한 가장 인기 있는 프로젝트 및 종속성 관리 도구입니다. Maven은 일상적인 작업에 도움이 되는 많은 명령과 옵션을 제공합니다.

메이븐 명령

몇 가지 유명하고 반드시 알아야 할 maven 명령을 살펴보겠습니다. 샘플 Maven 프로젝트를 사용하여 명령 출력을 보여줍니다.

1. 깨끗한 mvn

이 명령은 대상 디렉토리를 삭제하여 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 컴파일러:컴파일

이 명령은 maven 프로젝트의 Java 소스 클래스를 컴파일합니다.

$ 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
...

출력에는 "BUILD SUCCESS\ 메시지 바로 앞에 있는 JAR 파일의 위치가 표시됩니다. 패키지 목표는 빌드를 패키징하기 전에 컴파일, 테스트컴파일 및 테스트 목표를 실행합니다.

5. mvn 설치

이 명령은 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 파일 distributionManagement 태그에서 적절하게 구성되어야 합니다. 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 archetypes는 maven 프로젝트 템플릿 툴킷입니다. 이 명령을 사용하여 JAR, 웹 애플리케이션, 메이븐 사이트 등과 같은 다양한 유형의 스켈레톤 메이븐 프로젝트를 생성할 수 있습니다. 권장 자료: Maven Archetypes를 사용하여 Java 프로젝트 만들기

11. mvn 사이트: 사이트

이 명령은 프로젝트에 대한 사이트를 생성합니다. 이 명령을 실행하면 대상에 "site\ 디렉토리가 있음을 알 수 있습니다. 사이트 디렉토리에는 프로젝트와 관련된 정보를 제공하는 여러 HTML 파일이 있습니다.

12. mvn 테스트

이 명령은 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. mvn 확인

이 명령은 프로젝트를 빌드하고 모든 테스트 사례를 실행하며 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인합니다.

메이븐 옵션

Maven은 maven 빌드 프로세스를 변경할 수 있는 많은 명령줄 옵션을 제공합니다. 몇 가지 중요한 maven 옵션을 살펴보겠습니다.

15. mvn -도움말

이 명령은 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. mvn -v

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. mvn -T 4 패키지

이 명령은 지정된 스레드 수를 사용하여 병렬 빌드를 실행하도록 maven에 지시합니다. 모듈을 병렬로 빌드할 수 있는 여러 모듈 프로젝트에서 유용합니다. 프로젝트의 빌드 시간을 줄일 수 있습니다.

Maven 명령 치트 시트

참조

  • Maven 플러그인
  • Maven CLI 옵션 참조