Archetype 만드는 방법은 매우 쉽다.
간단히 말하면,
- 우선 Archetype 으로 사용된 maven 프로젝트를 먼저 만들고,
- archetype 플러그인으로 실제 archetype 용 프로젝트를 자동 생성한다.
- 생성된 archetype 프로젝트에 필요한 설정을 더 추가하여 배포한다.
1. Archetype 을 위한 샘플 프로젝트 생성
우선 pom.xml 이 있는 maven 프로젝트를 먼저 만든다.
이 프로젝트가 archetype 에 들어갈 기본 골격이다. 물론, archetype 프로젝트 생성 후에도 수정이 가능하다.
만일, 샘플로 사용할 프로젝트가 있다면 별도 프로젝트 생성 없이 해당 프로젝트를 사용해도 된다.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kr.pe.slothink</groupId>
<artifactId>slothink-webapp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
...
</project>
archetype 프로젝트시 생성될 프로젝트에 소스를 포함고 싶다면, 소스를 추가하되 공통적인 패키지명만 유지한다. 패키지명은 어떤 패키지명을 사용해도 상관없다.
archetype 프로젝트 생성시에는 소스의 패키지의 공통적인 부분을 archetype 을 이용해 프로젝트 생성시 입려되는 패키지명의 값으로 치환을 시켜준다.
2.Archetype 용 프로젝트 생성
해당 프로젝트에서 다음의 maven 플러그인 골을 수행한다.
해당 골이 성공적으로 수행되면 target/generated-sources/archetype 에 archetype 용 프로젝트가 생성된다.
생성된 프로젝트의 pom.xml 을 보면 다음과 비슷할것이다.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kr.pe.slothink</groupId>
<artifactId>slothink-webapp-archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<name>slothink-webapp-archetype</name>
....
</project>
주목할 만한것은 패키징 타입이 'maven-archetype' 이라는 것과 생성된 프로젝트 이름에 '-archetype' 이 붙었다는 것이다.
3.Archetype 프로젝트 배포하기
이제 archetype 프로젝트를 다룰 준비가 완료되었다.(이전 샘플 프로젝트는 이제 버린다.)
이전 샘플 프로젝트에서 미처 추가하지 못한 소스라던지, 설정들은 생성된 프로젝트에서 추가 및 수정한다.
아마 생성된 리소스들을 확인하면 무슨 뜻인지 이해가 잘 갈 것이다.
그래도 이해가 안된다면 메이븐 공식 사이트를 참조한다. http://maven.apache.org/guides/mini/guide-creating-archetypes.html
배포 방법은 일반 메이븐 프로젝트 배포방법과 동일하다.
install 을 사용해서 local 에 저장할 수 있으며
deploy 를 이용해서 사내 저장소에 저장도 가능하다.
하지만 deploy 를 할경우에는 생성된 archetype 프로젝트 pom 에 배치 정보를 추가 해야할것이다.
(샘플 프로젝트에 있던 배치 정보는 의미 없다. 새로 생성된 pom 에 다시 작성해야한다.)
4.생성한 archetype 으로 프로젝트 만들기
install 과정을 거쳤다면 local 카탈로그에서 해당 achetype 을 조회할 수 있다.
임의의 위치에서 다음과 같이 실행하여보자.
이제 아름다운 광경을 목격하게 될 것이다. ^^