본문 바로가기

programming

Maven3 vol.1 기본개념

신규 프로젝트 생성시 groupId : 프로젝트의 기본 패키지로 생성됨.
신규 프로젝트 생성시 artifactId : 프로젝트명.
Maven2의 중앙저장소 : repo1.maven.org/maven2/
Maven3의 중앙저장소 : (라이브러리가 저장된 위치확인)
maven build tool의 기본 설정파일 : pom.xml
maven 명령어의 형태 : mvn [options][<goal(s)>][<phase(s)>]
goal과 phase는 pom.xml이 있는곳(프로젝트의 디렉토리 안)에서 실행가능.
메이븐은 기본적으로 빌드를 실행할때 단위테스트를 진행함.
단위테스트 스킵 명령어 : mvn -Dmaven.test.skip=true (Phase)
다양한 빌드명령어의 예 :
mvn clean test 클린과 테스트 페이즈 실행.
mvn clean compiler:compile : 클린 페이즈 실행 후, 컴파일러 플러그인의 컴파일 골 실행. 

mvn package : 컴파일, 테스트완료 후 war파일로 압축까지 진행.

메이븐의 아키타입 : 웹 어플리케이션의 경우
maven-archetype-webapp
빌드툴과 관련된 설정파일 : settings.xml
MAVEN_HOME/conf 에 위치.
사용자별로 다른 설정을 원한다면 USER_HOME/.m2에 settings.xml파일을 복사하여 빌드 설정 가능.
예) c:/user/프로젝트명/.m2
메이븐은 빌드시 의존관계에 있는 플러그인과 라이브러리를 중앙저장소에서 다운로드함.
빌드 명령어 : mvn test
settings.xml안의 <localRepository>설정으로 로컬 저장소의 경로를 변경 가능.
POM.xml : Project Object Model
mvn -f mypom.xml test : 빌드시 pom.xml이 아닌 mypom.xml 설정파일을 이용.
pom.xml파일과 관련된 자세한 정보 : http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
pom.xml의 구조


프로젝트 기본정보 : 프로젝트이름, 프로젝트URL, 프로젝트에 참여하는 개발자 목록, 프로젝트 라이센스 정보.
빌드설정 : 기본 소스 디렉토리나 리소스 디렉토리에 대한 변경, 기본제공 플러그인의 설정 변경 및 새로운 플러그인을

               추가하여 빌드과정에 포함시키기 위한 설정 가능.
프로젝트 관계 설정 : 다른 라이브러리 혹은 프로젝트 사이에 상속관계를 가질 경우 각 프로젝트의 관계를 설정하는 부분. 

빌드환경 : groupId, artifactId, packaging, version 정보는 프로젝트를 배포하고, 배포한 라이브러리를 다른 프로젝트에서

               참조할 때 사용. 중앙 저장소에서 모든 라이브러리를 관리하므로 모든 프로젝트는 고유한 값을 가져야 

            함.


최상위 POM 설정파일 : 메이븐에서 기본으로 사용하는 디렉토리(소스코드,테스트 소스코드,리소스,테스트 리소스 등)구조,

                                  중앙 저장소, 플러그인 등의 셋팅 정보.


최상위 POM의 설정 정보

build : 프로젝트 빌드와 관련한 기본적인 소스 디렉토리 구조, 빌드 산출물 디렉토리 구조, 빌드시 사용할 플러그인 

          정보관리.

sourceDirectory : 실제 서비스를 담당하는 자바 소스 코드를 관리하는 디렉토리. 기본값은 src/main/java

testSourceDirectory : 테스트 소스를 관리하기 위한 디렉토리. 메이븐 빌드 툴은 서비스 소스 코드와 테스트 소스코드를 

                              분리해 관리하며, 배포시 테스트 소스코드가 같이 배포되지 않게 함. 기본값은 src/test/java

outputDirectory : sourceDirectory의 소스를 컴파일한 결과물이 위치하는 디렉토리. 기본값은 target/classes

resources : 서비스에 사용되는 자원을 관리하는 디렉토리. 기본값은 src/main/resources

testResources : 테스트시에 필요한 자원을 관리하는 디렉토리. 기본값은 src/test/resources

repositories : 빌드할 때 접근할 저장소의 위치를 관리. 메이븐 기본 저장소 URL은 http://repo1.maven.org/maven2 

                    (Maven2기준)

pluginManagement : 빌드 설정파일에서 관리하는 플러그인목록. 이 엘리먼트에 설정되어 있다고 해서 반드시 

                             사용하는 것은 아님.

tip. 최상위 POM에서 정의한 기본설정을 변경하고자 한다면 하위 설정파일에서 재정의하면 됨.

target 디렉토리 : 빌드 후 생성되는 폴더로 빌드 후 모든 산출물이 관리되는 폴더.


작성중


Getting started 문서

http://maven.apache.org/guides/getting-started/

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html


참고서적

자바 세상의 빌드를 이끄는 메이븐

저자 박재성