Maven goal은 Maven 프로젝트에서 수행할 작업을 정의하는 것입니다. Maven goal은 주로 빌드 과정에서 수행되며, 디펜던시 관리, 테스트 수행, 애플리케이션 배포 등의 다양한 작업을 수행할 수 있습니다. 예를 들어, "mvn clean"은 빌드 과정에서 생성된 임시 파일들을 제거하는 Maven goal 입니다.
즉 Maven의 goal은 Maven이 빌드 생명주기 동안 수행 할 수있는 구체적인 작업입니다. 이들은 컴파일, 테스트, 패키지, 배포 등 빌드 생명주기의 다른 단계에 묶여 있으며, 각 목표는 그 단계에서 수행 할 특정 작업을 나타냅니다. 목표는 다음 명령 구문을 사용하여 실행 할 수 있습니다. mvn <phase>: <goal>. 예를 들어, 프로젝트를 컴파일하려면 mvn compile:compile을 실행하면 됩니다.
일반적인 goal의 예시는 다음과 같습니다.
compile : 소스 코드를 컴파일합니다.
test : 테스트를 실행합니다.
package : 컴파일 된 코드를 배포 가능한 형식 (JAR 또는 WAR 파일)으로 패키지합니다.
install : 패키지 된 아티팩트를 로컬 레포지토리에 설치합니다.
deploy : 아티팩트를 원격 레포지토리에 배포합니다.
Maven에는 Repository라는 개념이 있으며, Local Repository, Remote Repository, Plugin Repository로 구분될 수 있습니다.
Local Repository는 개발자의 머신에 저장되는 프로젝트 구축에 필요한 모든 artifact, dependency, plugin이 저장되는 로컬 폴더입니다. Remote Repository에서 다시 다운로드하는 것을 방지하기 위한 캐시로 작용합니다.
Remote Repository는 Maven 커뮤니티에 의해 관리되는 원격 서버에 저장되는 Repository입니다. 예를 들어 Central Repository와 같은 것이 있습니다. 이 Repository에는 대부분의 일반적으로 사용되는 Java 라이브러리가 포함되어 있습니다. Maven이 프로젝트를 구축할 때, 첫째로 Local Repository를 확인하고, 필요한 artifact가 거기에 없으면 Remote Repository에서 다운로드합니다.
Plugin Repository는 Remote Repository와 비슷하지만, Maven의 기능을 확장하는 다시 사용 가능한 컴포넌트인 Maven plugin을 저장하기 위해 특별히 사용됩니다. Remote Repository와 마찬가지로, Maven이 plugins을 처음에 Local Repository에서 확인하고, 없으면 Plugin Repository에서 다운로드를 수행합니다.
Maven 플러그인은 Maven의 기능을 확장하는 다시 사용 가능한 컴포넌트입니다. 예를 들어, 컴파일 플러그인, JAR 플러그인, 소스 플러그인, JavaDoc 플러그인, Tomcat 배포 플러그인이 있습니다. 각 플러그인은 특정 빌드 라이프 사이클 단계에서 수행할 수 있는 골(goal)을 가지고 있습니다. Maven은 많은 내장 플러그인을 제공하며, 사용자 정의 플러그인도 생성할 수 있습니다.
'Spring' 카테고리의 다른 글
Next Step 학습테스트를 통한 스프링 2주차 (0) | 2024.06.18 |
---|---|
대규모 트래픽 -캐시 영상 정리 (2) | 2024.01.09 |
maven 정리 (2) (0) | 2023.02.05 |
maven 정리 (0) | 2023.02.04 |
의존성 주입과 초기화 (0) | 2022.07.26 |