본문 바로가기

툴사용법

[MAVEN] 멀티모듈

* 멀티모듈프로젝트 생성

프로젝트를 생성하기위한 기본 아키타입이 quickstart 여서 생략해도 되지만 지정할경우

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart

 

2번 걍 엔터 : 아키타입 버전설정

 

동일하게 자식 프로젝트 생성

 

Maven-parent-app 디렉토리에 2개 이사의 프로젝트를 생성하고, pom.xml을 위와 같이 작성.

10. packaging : pom > mvn-parent-app 프로젝트는 부모 프로젝트로서 자식 프로젝트에서 공통으로 사용되는 pom을 가지고 있고, 프로그램은 갖고 있지 않다. 이처럼 프로그램을 갖지 않는 프로젝트를 pom으로 설정해 표현한다.

22~25. Module : 프로젝트에서 이용되는 서브 프로젝트, 모듈로 지정하면, 프로젝트 내의 서브 프로젝트로 인식된다.

 

artifactId name 두 곳만 각각 mvn-sub-appmvn-sub2-app로 값이 다르고, 나머지는 동일

20~24. Parent : 그룹ID, 아티팩트ID, 버전과 같은 값을 포함한다. 이것을 지정하면 빌드시 부모 해당하는 프로그램의 pom.xml을 읽어 그 안에 있는 내용을 사용한다.(부모의 dependency를 공통으로 사용한다.)

 

 

 

Mvn-parent-app 자체는 프로그램을 포함하지 않으므로 패키징하더라도 아무 영향이 없지만, 서브프로젝트가 자동으로 패키징된다.

 또한, 모듈 프로젝트 내로 이동해서 mvn package를 실행하면 그 프로젝트만 패키징된다. 이 때 빌드와 동시에 테스트도 실행된다.