2012/10/23 11:09

maven archetype 생성. Architect

archetype을 생성하는 방법은 두가지 이다.

1. maven 명령어를 이용해 cmd창에서 직접 archetype프로젝트를 생성하는 것.
명령어는 maven archetype:archetype 이다.
그리고 코딩.
일단 위의 방법은 패쓰~~~~ 아래 방법을 위주로 적어본다.. 



2. 메이븐 프로젝트를 생성한 뒤 해당 프로젝트를 이용해 archetype을 생성하는 방법.(이클립스)
 가, 프로젝트를 선택하고 run as > run configurations 클릭.
 나. maven build를 선택하고 new 클릭해서 새로운 설정 생성
 다. name은 알아서 적고, Base Directory는 Browse Workspace.. 클릭, 변경할 프로젝트 경로 선택, 
 라. Goals 에는 다음과 같이 입력.. archetype:create-from-project 
 마. apply후 Run 클릭 실행.
위와 같이 실행시키면 잘 작동하다가 간혹 EMBADDED 에러가 나는 경우가 있다.
이는 이클립스에 포함된 메이븐을 이용해서 생성하는 경우인데, 
이떄는 추가로 다운받은 maven을 등록해서 생성해야 에러가 발생하지 않는다.
아래쪽에 Maven Runtime을 새로 넣어준 maven으로 변경해주면 된다. 

새로운 maven을 등록하는 방법은 window > preperence 에서 
maven > installation > add를 통해 추가해주면 된다. 

위 과정을 통해 archetype을 생성하게 되면, target 안에 아래와 같이 생선된 것이 보일 것이다. 















기존 프로젝트를 이용하든, archetype을 이용해서 프로젝트를 생성했든,
여기까지 해서 archetype 프로젝트가 생성되었다.



그러면 이제 install을 통해서 실제 jar 파일을 생성해 보도록 하자.
위 target 경로상에 archetype을 선택하고, 전에 archetype을 생성할때와 같이 run configurations 에 들어간다.
Name을 알아서 지정하고, Base Directory역시 archetype 경로를 선택해주고,
Goals를 install로 적고 실행시키면 된다. 
그러면 repository로 설정된 위치 안에, 패키지 경로명을 따라가 보면 archetype의 jar파일을 확인할 수  있다.



마지막으로, 위에 생성한 archetype으로 프로젝트를 생성하려면 archetype-catalog.xml 이라는 파일이 필요하다. 
기본적으로 install을 진행하면 자동으로 업데이트가 되는데, 로컬의 모든 archetype을 한 파일에서 관리하다 보니,
간혹 제대로 업데이트가 안되는 경우가 있다..
혹시 내가 생성한 archetype이 보이지 않는다면 update를 해주어야 한다. 
이 역시, run configurations > name 지정 > Base Directory 지정 > Goals 에 archetype:update-local-catalog 선언, 실행

위와같이 하게되면 archetype-catalog.xml 파일에 archetype이 등록되게 된다.



혹시, 이전에 archetype을 Embaded된 maven으로 생성한게 아니라면 위 파일이 생성되는 위치는 
.m2 폴더 아래다. 파일을 복사해서 내가 지정한 repository로 옮겨야 한다. 



archetype을 이용해서 프로젝트를 생성하는건 쉽다.
new > maven project를 선택하고, 
default local에 보면 생성한 archetype이 보인다. 
혹시, .m2폴더내에 archetype-catalog.xml 파일이 없다면 위 위치로 선택했을때 archetype이 보이지 않으며,
해당 파일이 있는 위치를 추가해 주어야 한다. 
이는 window > preperence > maven > Archetypes 에서 추가.



흠,
보기만 하다가 처음으로 쭉 진행해 보았는데,
역시 만족스럽다. 
개발환경 지원시, 프레임워크를 이용해 프로젝트를
일일히 개발해서 주는건 너무 time waste이다.;;
archetype을 잘 이용하면 정말 효율적인 프로젝트 지원이 가능해 질꺼 같고,
이제서야 내 스스로 그 일을 감당할 수 있게 되었다.. 후후후.

오늘도 하나 배워간다~~




덧글

댓글 입력 영역