Maven 하면 할수록 재미있는 툴입니다.
Maven 으로 생성된 프로젝트의 구조를 내맘대로 바꿀 수 있는 archetype 을 만들어 보겠습니다.
1. Maven Archetype 을 위한 프로젝트의 생성
콘솔창을 띄워서 아래와 같은 명령을 실행합니다.
mvn archetype:create -DgroupId=kr.co.vicki -DartifactId=maven-vicki-archetype -DarchetypeArtifactId=maven-archetype-archetype
빌드가 성공하면 아래와 같은 구조가 생성이 됩니다.
2. pom.xml
생성된 pom.xml 은 다음과 같습니다.
maven-vicki-archetype/pom.xml
참고한 가이드에서는 groupId, artifactId 와 version 이 필수적이라고 하네요~ (아닌가;;;)
3. archetype.xml
복사할 소스와 리소스들의 정보가 있는 archetype.xml 입니다.
필요한 소스나 리소스들이 있다면 이 곳에 정의를 합니다.
maven-vicki-archetype/src/main/resources/META-INF/maven/archetype.xml
<id> 는 pom.xml 의 artifactId 와 같아야 합니다.
다른 태그들은 프로젝트의 각 부분들을 나타냅니다.
<sources> = src/main/java
<resources> = src/main/resources
<testSources> = src/test/java
<testResources> = src/test/resources
<siteResources> = src/site
복사되는 소스의 패키지 경로가 자동으로 설정되기 위해 수정을 합니다.
maven-vicki-archetype/src/main/resources/archetype-resources/src/main/java/App.java
maven-vicki-archetype/src/main/resources/archetype-resources/src/test/java/AppTest.java
4. prototype pom.xml
새로 만든 archetype 으로 생성되는 프로젝트의 pom.xml 의 원형입니다.
maven-vicki-archetype/src/main/resources/archetype-resources/pom.xml
실행옵션에 따라 값을 설정할 수 있도록 수정을 해주고, 기본적으로 포함시킬 dependency 들을 추가하거나 수정합니다.
저는 junit 버전을 최신버전인 4.5 로 변경하였습니다.
5. Local Repository 배포
maven-vicki-archetype 폴더로 이동하여 다음 명령어를 실행합니다.
mvn install
빌드가 성공하면 Local Repository 에 아래 경로로 배포가 되어있음을 확인할 수 있습니다.
[MavenLocalRepository]/kr/co/vicki/maven-vicki-archetype/1.0-SNAPSHOT
5. 새로만든 Archetype 의 Maven 프로젝트 생성
프로젝트를 생성할 경로에 다음의 명령을 실행합니다.
mvn archetype:create -DarchetypeGroupId=kr.co.vicki -DarchetypeArtifactId=maven-vicki-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=vicki.group -DartifactId=vicki.artifact
archetypeGroupId,
archetypeArtifactId 와
archetypeVersion 은 위에서 만든 내용으로 설정하고,
groupId 와
artifactId 는 생성될 프로젝트에 맞게 설정합니다.
생성된 프로젝트 구조
하핫... Test 코드에 어노테이션을 썼는데 mvn test 로는 빌드 실패가 나오네요~
org.apache.maven.plugins::maven-compiler-plugin 플러그인을 추가해야 할 것 같습니다~