1. Maven 프로젝트 패널 📂
인텔리제이의 우측에 있는 Maven 프로젝트 패널은 Maven을 통해 빌드 및 의존성 관리를 할 수 있는 기본적인 인터페이스입니다. 이 패널에서는 프로젝트의 전체 구조를 볼 수 있으며, 프로젝트 빌드 및 실행을 제어할 수 있습니다.
- Lifecycle: Maven 빌드의 기본적인 흐름을 정의한 단계들을 실행할 수 있습니다. clean, validate, compile, test, package, install, deploy와 같은 단계들을 사용해 프로젝트 빌드를 관리할 수 있습니다.
- Plugins: Maven에서 사용하는 플러그인들을 관리하고 실행할 수 있습니다. 예를 들어, maven-compiler-plugin을 통해 Java 컴파일을 제어하거나 maven-surefire-plugin을 통해 테스트 실행을 할 수 있습니다.
- Goals: 각 플러그인마다 제공하는 작업을 선택하여 실행할 수 있습니다. 예를 들어 compile, test, package 등의 목표를 선택하여 Maven을 통해 작업을 실행합니다.
Maven Lifecycle의 주요 단계들
- clean 🧹 clean 단계는 Maven 빌드에서 이전에 생성된 빌드 아티팩트를 삭제하는 역할을 합니다. 이 단계는 프로젝트가 청결한 상태에서 새로 빌드가 시작되도록 합니다. 예를 들어, 이전 빌드 결과물인 클래스 파일, JAR 파일, WAR 파일 등을 삭제합니다.
- 기능: 이전 빌드 결과물 제거
- 주요 작업:
- target 디렉토리 삭제
- 이전 빌드에서 생성된 모든 아티팩트 삭제
- 사용 시점: 새로 빌드하려고 할 때, 이전 빌드 결과물이 충돌할 가능성이 있을 때 사용합니다.
- validate ✅ validate 단계는 프로젝트 구조와 설정이 올바른지 확인하는 작업을 합니다. 이 단계에서는 pom.xml 파일의 구문 오류나 잘못된 설정을 체크하며, 프로젝트가 정상적으로 빌드를 진행할 수 있도록 유효성 검사를 합니다.
- 기능: 프로젝트 설정의 유효성 검사
- 주요 작업:
- pom.xml 파일 구문 검사
- 의존성 체크
- 프로젝트의 기본 설정이 정상적인지 확인
- 사용 시점: 빌드를 시작하기 전에 설정 오류나 문제가 없는지 확인할 때 사용합니다.
- compile 🔨 compile 단계는 소스 코드 컴파일을 처리합니다. 이 단계에서는 src/main/java에 있는 소스 파일들을 컴파일하여 바이트코드 .class 파일을 생성합니다. 의존성도 이 시점에 함께 해결되며, 해당 프로젝트의 소스 파일을 빌드하여 실행 가능한 형태로 만듭니다.
- 기능: 소스 코드 컴파일
- 주요 작업:
- src/main/java의 모든 Java 소스 코드 컴파일
- 의존성 해결 및 컴파일 과정에서 필요한 JAR 파일이나 라이브러리 포함
- 사용 시점: Java 소스 코드 파일을 컴파일할 때 사용합니다.
- test 🧪 test 단계는 단위 테스트를 실행하는 역할을 합니다. 이 단계에서는 src/test/java 디렉토리에 있는 테스트 코드를 실행하여, 빌드된 코드가 의도대로 동작하는지 검증합니다. 이때 주로 JUnit과 같은 테스트 프레임워크가 사용됩니다.
- 기능: 단위 테스트 실행
- 주요 작업:
- src/test/java에 있는 테스트 코드 실행
- 테스트 성공 여부 확인 (JUnit, TestNG 등 사용)
- 테스트 실패 시 빌드를 중단할 수 있음
- 사용 시점: 코드가 의도대로 동작하는지 검증할 때 사용합니다.
- package 📦 package 단계는 컴파일된 코드와 리소스를 패키징하는 역할을 합니다. 이 단계에서는 테스트가 완료된 소스 파일을 실행 가능한 JAR, WAR, EAR 등의 형태로 패키징합니다. 이는 실제로 배포할 수 있는 아티팩트입니다.
- 기능: 소스 코드와 리소스를 아티팩트로 패키징
- 주요 작업:
- JAR, WAR, EAR 파일 생성
- target 폴더에 패키지된 파일 저장
- 사용 시점: 패키지된 파일을 배포할 준비가 되었을 때 사용합니다.
- install 💾 install 단계는 로컬 레포지토리에 아티팩트를 설치하는 작업을 합니다. 패키징된 JAR, WAR 파일을 로컬 Maven 리포지토리에 저장하여 다른 프로젝트에서 이 아티팩트를 의존성으로 사용할 수 있게 만듭니다.
- 기능: 로컬 Maven 리포지토리에 아티팩트 저장
- 주요 작업:
- 패키지된 아티팩트를 로컬 Maven 저장소에 복사
- 다른 프로젝트에서 의존성으로 사용할 수 있도록 저장
- 사용 시점: 패키징된 아티팩트를 다른 프로젝트에서 사용할 때 사용합니다.
- deploy 🚀 deploy 단계는 원격 리포지토리에 아티팩트를 배포하는 역할을 합니다. install 단계와 유사하지만, 이 단계에서는 생성된 아티팩트를 로컬 리포지토리뿐만 아니라 원격 Maven 리포지토리에 배포하여 다른 개발자나 팀에서 사용할 수 있도록 합니다.
- 기능: 원격 리포지토리에 아티팩트 배포
- 주요 작업:
- 원격 Maven 리포지토리에 아티팩트 업로드
- 아티팩트를 배포하여 다른 프로젝트에서 사용 가능하도록 함
- 사용 시점: 프로젝트를 공유하거나, 배포하여 다른 팀원들이 사용할 수 있도록 할 때 사용합니다.
2. 프로젝트 의존성 관리 🔗
Maven에서는 프로젝트의 의존성 관리를 통해 다른 라이브러리나 JAR 파일을 자동으로 다운로드하고 관리할 수 있습니다. 인텔리제이에서는 다음과 같은 기능을 제공합니다:
- 의존성 트리: 프로젝트에 포함된 의존성들을 트리 형태로 시각화하여 쉽게 파악할 수 있습니다. 의존성의 버전, 범위(scope) 등을 확인하고, 충돌이 발생한 경우 이를 해결하는 데 도움을 줍니다.
- 의존성 추가 및 제거: pom.xml 파일을 수정하거나, 인텔리제이에서 제공하는 UI를 통해 Maven 의존성을 추가하거나 제거할 수 있습니다. 원하는 라이브러리나 JAR 파일을 검색하여 프로젝트에 손쉽게 추가할 수 있습니다.
- 의존성 업데이트: 의존성의 최신 버전을 체크하고, 업데이트가 가능하면 이를 알림으로 제공하여 최신 버전으로 관리할 수 있게 돕습니다.
3. Maven 빌드 실행 🛠️
인텔리제이에서는 Maven의 빌드 실행을 매우 직관적으로 처리할 수 있습니다.
- 메이븐 빌드 실행: Maven 프로젝트에서 기본적인 빌드 명령어를 우클릭하여 실행하거나, Maven 패널 내에서 clean install과 같은 명령어를 실행할 수 있습니다. 빌드 결과는 Run 창에서 확인할 수 있으며, 빌드 오류와 경고도 쉽게 파악할 수 있습니다.
- 빌드 프로파일 관리: Maven에서는 여러 빌드 프로파일을 사용할 수 있는데, 인텔리제이에서는 이를 관리할 수 있는 UI를 제공합니다. 예를 들어, 개발 환경과 배포 환경을 분리하여 프로파일을 설정하고, 필요한 프로파일을 선택하여 빌드를 실행할 수 있습니다.
4. 라이프사이클 및 플러그인 설정 ⚙️
Maven에서는 프로젝트의 빌드를 여러 단계로 나누어 수행할 수 있는데, 인텔리제이에서는 이 과정도 쉽게 관리할 수 있습니다. 라이프사이클에 대한 플러그인 설정을 지원하여, 예를 들어 빌드 후 실행할 추가 작업을 설정하거나, 특정 단계에서의 작업을 정의할 수 있습니다.
- Maven Goals 실행: validate, clean, compile, test, install, deploy 등 Maven 빌드 생애 주기 동안 발생하는 다양한 작업들을 GUI로 실행할 수 있습니다.
- Custom Goals: 기본 제공되는 Goals 외에도 사용자 정의 Goals을 설정하여, 필요에 맞는 작업을 추가하거나 수정할 수 있습니다.
5. Maven 인스톨 및 배포 📤
Maven을 사용하면 프로젝트를 쉽게 배포할 수 있습니다. 인텔리제이에서는 Maven의 배포 기능을 통해 프로젝트를 로컬 레포지토리나 원격 레포지토리에 배포할 수 있습니다.
- 로컬/원격 레포지토리 설정: pom.xml에서 레포지토리를 설정하고, 원하는 리포지토리에 Maven 아티팩트를 배포할 수 있습니다. 인텔리제이에서는 이를 쉽게 설정하고 관리할 수 있는 UI를 제공합니다.
- 버전 관리: Maven 프로젝트의 버전 관리를 인텔리제이에서 간편하게 할 수 있습니다. 버전 업그레이드나 변경 사항을 적용할 때 유용합니다.
6. Maven 효율적 디버깅 🐞
Maven을 통해 프로젝트를 빌드할 때 발생하는 문제를 인텔리제이에서 디버깅할 수 있습니다. 로그를 실시간으로 확인하며, 빌드 과정 중 발생한 오류를 빠르게 추적할 수 있습니다.
- 디버그 모드 실행: Maven을 디버그 모드로 실행하여, 빌드 과정에서 발생한 오류를 보다 상세하게 확인할 수 있습니다.
- 빌드 오류 및 경고 표시: 빌드 오류와 경고는 인텔리제이의 콘솔 창에 표시되며, 이를 통해 코드나 설정에 문제가 있는 부분을 빠르게 파악할 수 있습니다.
'IntelliJ' 카테고리의 다른 글
IntelliJ IDEA 코드 실시간 반영(Hot Swap) 설정 및 활용법 (0) | 2025.02.14 |
---|---|
인텔리제이 단축키 완벽 가이드! 생산성을 높이는 팁 🔥💻 (1) | 2025.02.14 |
🌟 IntelliJ IDEA Changelist 기능 완벽 정리 (0) | 2025.02.10 |
IntelliJ IDEA에서 SVN 브랜치 생성하기 (0) | 2025.02.07 |
IntelliJ IDEA의 Shelf(쉘브) 임시저장 기능 (1) | 2025.02.06 |