maven
Maven 3.9+Maven CLI 명령어 빠른 참조 — 프로젝트 라이프사이클 단계, 의존성 관리, 플러그인, 다중 모듈 리액터, 리포지터리 배포, 디버깅 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 34개
라이프사이클 단계
mvn validate프로젝트 구조를 검증합니다 — 메타데이터 다운로드, `pom.xml` 파싱, 의존성 정합성 점검.
-N 루트 리액터만(하위 모듈 제외); -f <pom> 다른 POM 사용; -P<profile> profile 활성화
mvn validatemvn compile메인 `src/main/java`를 `target/classes`로 컴파일합니다. 설정된 JDK와 `maven-compiler-plugin`을 사용합니다.
-DskipTests; -T 4 병렬 빌드 스레드; -q 조용
mvn compilemvn test컴파일된 메인 + 테스트 소스에 대해 단위 테스트(Surefire)를 실행합니다. `failsafe`(통합 테스트)는 건너뜁니다 — 통합 테스트는 `mvn verify`를 사용하세요.
-Dtest=ClassName; -Dtest=Class#method; -DfailIfNoTests=false; -Dsurefire.useFile=false
mvn test -Dtest=UserServiceTestmvn package이전 단계를 모두 실행한 뒤 컴파일된 결과를 `target/` 아래 JAR / WAR / EAR로 패키징합니다.
-DskipTests; -Dpackaging=jar
mvn package -DskipTestsmvn verifypackage과 통합 테스트(Failsafe)를 실행하고, 모든 것이 배포 가능한지 검증합니다. **install**이나 **deploy**는 수행하지 않습니다.
-DskipITs; -DskipTests
mvn verify -DskipITsmvn installverify를 실행한 뒤 생성된 아티팩트를 로컬 Maven 리포지터리(`~/.m2/repository`)에 복사해 다른 로컬 프로젝트가 의존할 수 있게 합니다.
mvn install -DskipTestsmvn deploy`pom.xml`의 `<distributionManagement>`에 선언된 원격 리포지터리(Nexus / Artifactory / Sonatype를 통한 Maven Central)로 아티팩트를 빌드 후 푸시합니다.
-DskipTests; -P release 릴리스 profile 사용
mvn deploy -P release -DskipTestsmvn clean`target/` 디렉터리를 삭제해 깨끗한 상태에서 시작합니다.
mvn cleanmvn clean install`target/`을 비우고 `install`까지 실행합니다 — 가장 흔한 "처음부터 다시 빌드" 명령입니다.
-U 스냅샷 의존성 강제 업데이트
mvn clean install -U의존성
mvn dependency:tree해석된 의존성 트리(충돌 해소 포함)를 출력합니다 — 버전 차이로 인한 `NoSuchMethodError` 추적에 매우 유용합니다.
-Dincludes=<groupId>[:<artifactId>[:<version>]]; -Dverbose
mvn dependency:tree -Dincludes=com.fasterxml.jackson.coremvn dependency:resolve라이프사이클을 실행하지 않고 모든 의존성을 로컬 리포지터리에 해석합니다.
mvn dependency:resolvemvn dependency:analyze선언된 `<dependencies>`와 실제 `import` / `package` 사용을 비교해, 사용되지 않거나 선언되지 않은 의존성을 표시합니다.
mvn dependency:analyzemvn dependency:list빌드에 해석된 모든 의존성을 `groupId:artifactId:type:version` 형식의 평문 줄로 나열합니다.
mvn dependency:list | grep slf4jmvn versions:display-dependency-updates설정된 리포지터리에 더 새로운 버전이 있는 모든 의존성을 나열합니다.
mvn versions:display-dependency-updates다중 모듈
mvn -pl <module> <goal>artifact ID로 지정한 하나 이상의 하위 모듈에 대해 goal을 실행합니다(쉼표로 구분).
-am 타깃이 의존하는 모듈도 함께 빌드
mvn -pl user-service,order-service -am testmvn -pl <module> -am <goal>지정한 모듈과 그것이 의존하는 모든 모듈을 빌드합니다. `-amd`(also-make-dependents)는 역방향입니다.
mvn -pl web -am packagemvn -T 4 <phase> / mvn -T 1C <phase>병렬 리액터: `-T 4`는 4 스레드, `-T 1C`는 CPU 코어당 1 스레드를 사용합니다. 다중 모듈 빌드를 가속합니다.
mvn -T 1C clean install리포지터리
mvn help:effective-pom최종 병합 POM(super-POM + 부모 POM + 활성 profile + 현재 settings)을 단일 파일로 출력합니다 — 빌드 시점의 진실의 원천.
-Doutput=<file>
mvn help:effective-pom > effective.xmlmvn help:effective-settings병합된 `~/.m2/settings.xml` + 글로벌 + CLI `--settings`를 출력합니다. 미러 / 자격 증명 해석 추적에 유용합니다.
mvn help:effective-settings -s ./settings.xmlmvn -s <settings.xml> <phase>한 빌드에 대해 사용자 `settings.xml`을 재정의합니다 — 미러된 리포지터리를 사용하는 CI에서 유용합니다.
mvn -s ./.mvn/settings.xml deploy플러그인
mvn <plugin>:<goal>단일 플러그인 goal을 직접 실행합니다. 자주 쓰는 예: `compiler:compile`, `surefire:test`, `jar:jar`, `deploy:deploy`, `dependency:tree`.
-D<param>=<value> goal 매개변수; -X 디버그(매우 자세함)
mvn compiler:compile && mvn surefire:test -Dtest=*ServiceTestmvn help:describe -Dplugin=<id>플러그인의 모든 goal과 매개변수를 보여줍니다. `<id>`를 `groupId:artifactId`로 대체하세요.
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin프로파일
mvn -P<profile1>,<profile2> <phase>`pom.xml` 또는 `settings.xml`의 `<profiles>` 아래에 선언된 하나 이상의 profile을 활성화합니다.
mvn -Pprod,fast testmvn -P!<profile> <phase>기본으로 활성화될 profile을 비활성화합니다.
mvn -P!javadoc package디버깅
mvn -X <phase>디버그 로깅을 활성화합니다 — 모든 플러그인 실행, 리포지터리 조회, 다운로드 URL을 출력합니다. 파일로 파이프하세요.
-e 오류 시 전체 스택 트레이스
mvn -X test > mvn-debug.log 2>&1mvn -e <phase>모든 실패에 대해 전체 스택 트레이스를 출력합니다. 최대 정보를 위해 `-X`와 함께 사용하세요.
mvn -e -X deploymvnDebug <phase>Maven JVM의 1번 줄에서 JDWP 소켓(기본 포트 8000)에 중단점을 건 빌드를 시작해 디버거를 붙일 수 있게 합니다.
mvnDebug test래퍼
./mvnw <phase>Maven Wrapper를 통해 빌드를 실행합니다 — `.mvn/wrapper/maven-wrapper.properties`에 고정된 Maven 버전을 사용합니다. 항상 래퍼를 체크인하세요.
-Dmaven.version=<ver> 이번 실행에서만 Maven 업그레이드
./mvnw clean installmvn wrapper:wrapperMaven Wrapper 파일(`mvnw`, `mvnw.cmd`, `.mvn/wrapper/*`)을 생성/갱신합니다.
-Dmaven=<version> Maven 배포판 버전 고정
mvn wrapper:wrapper -Dmaven=3.9.6기타
mvn --versionMaven 버전, JDK, OS, 로케일을 출력합니다.
mvn --versionmvn --help모든 CLI 플래그와 지원되는 속성을 나열합니다.
mvn --help | head -40mvn -B <phase>배치 / 비-인터랙티브 모드 — 인터랙티브 프롬프트와 색상 출력을 비활성화합니다. CI에서 누락된 속성으로 멈추는 일을 피하려면 사용하세요.
mvn -B -ntp clean verifymvn -ntp <phase>새 전송 진행률 표시줄을 비활성화합니다(CI에서 권장 — 로그 노이즈를 줄이고 느린 미러에서의 CPU 스파이크를 피함).
mvn -B -ntp clean deploymvn -o <phase>오프라인 모드 — 원격 리포지터리를 호출하지 않습니다. 필요한 아티팩트가 로컬에 없으면 빠르게 실패합니다.
mvn -o test관련 명령어 치트시트
mvnd
Maven Daemon (mvnd) 명령어 모음 — 상주 JVM 데몬 프로세스로 `mvn`을 감싼 래퍼. 모든 mvn 하위 명령을 그대로 사용할 수 있으며, 데몬 관리 명령(--status / --stop / --shutdown)을 추가로 제공합니다.
명령어 29개
Maven Daemon 1.0+
gradle
Gradle CLI 빠른 참조 — 프로젝트 task, 의존성 관리, 다중 프로젝트 빌드, 래퍼, 설정 캐시, 빌드 스캔 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 30개
Gradle 8+
상표 및 사용 안내
본 명령줄 도구 치트시트 모음은 오픈 커뮤니티 참고 자료입니다. 본 문서에서 언급되는 도구의 명칭, 로고, 상표(예: Git™, Docker™, Kubernetes®, kubectl, PostgreSQL®, MySQL®, Redis™, MongoDB®, Linux™, PowerShell™, Vim™ 등)는 각 권리자의 자산이며, 본 문서에서는 식별 및 참고 목적のみで 사용됩니다.
본 치트시트의 모든 내용은 독립적으로 작성된 단순화된 자체 완결형 참고 자료이며, 어떠한 공식 문서와도 계열·인정·출처 관계가 없습니다. 명령 목록, 플래그 설명, 예제는 모두 저자의 원본 단순화이며, 권위 있는 정보가 필요한 경우 각 도구의 공식 문서를 참조하시기 바랍니다.
명령 구문 및 옵션 플래그는 도구 버전에 따라 다를 수 있습니다. 표시되는 버전 태그는 안정 릴리스를 반영하며, 다른 버전에서는 동작이 다를 수 있습니다. 본 치트시트는 상표권자의 어떠한 선호나 권장도 의미하지 않습니다.
상표권자 또는 저작권자가 사이트의 일부 내용에 대해 권리 침해가 있다고 판단하시는 경우 [email protected]으로 이메일을 보내 주십시오. 유효한 권리 증명을 받은 후 합리적인 기간 내에 관련 내용을 수정하거나 삭제하겠습니다.
본 사이트는 사이트 정보의 이용으로 인해 발생하는 어떠한 직접적 또는 간접적 손해에 대해서도 법적 책임을 지지 않습니다.
Maven 소개
Apache Maven은 2002년에 처음 등장한(원래 Jason van Zyl이 작성) 자바 프로젝트 관리 및 이해 도구입니다. 선언적인 `pom.xml`(Project Object Model)로 프로젝트를 모델링하고, 잘 정의된 빌드 라이프사이클을 8단계 기본 phase — `validate`, `compile`, `test`, `package`, `verify`, `install`, `deploy` — 로 실행합니다. Maven은 단일 리포지터리 레이아웃(`groupId:artifactId:version`)과 원격 리포지터리(Maven Central)에서 의존성 해석을 강제한 최초의 메인스트림 자바 빌드 도구입니다. 현재 안정 라인은 Maven 3.9+입니다. Maven은 아티팩트를 로컬 리포지터리(기본 `~/.m2/repository`)에 다운로드하고 전이적으로 해석하며, 옵션 스코프(`compile`, `provided`, `runtime`, `test`, `system`, `import`)를 지원합니다. 플러그인은 라이프사이클을 확장하며, 자주 쓰는 플러그인은 `maven-compiler-plugin`, `maven-surefire-plugin`, `maven-jar-plugin`, `maven-deploy-plugin`입니다. Profile(`-P`)은 환경별로 기본값을 재정의합니다. Maven은 소스 코드를 업로드하지 않으며, `deploy`는 `distributionManagement`에 설정된 아티팩트(jar/war/pom)만 전송합니다. 래퍼 스크립트(`mvnw` / `mvnw.cmd`)는 프로젝트별로 Maven 버전을 함께 제공해 툴체인을 고정합니다.
치트시트 버전 1.0.0