2012. 3. 21.

메이븐 프로젝트 퀵 스터디


메이븐 프로젝트 퀵 스터디

> mvn archetype:generate
archetype :  메이븐 플러그인
generate: 플러그인에서 제공하는 특정 기능(goal)

>mvn [pluginName]:[goalName]

Archetype 플러그인은 여러 가지 자바 프레임웤르르 조합해 프로젝트의 템플릿을 만들어내는 기능을 제공한다.
메이븐에서는 현재 상당한 수의 프로젝트 템플릿을 제공하고 있으며, 그 템픞릿의 수는 점점 늘어날 것이다.
기본적으로는 171 maven-archetype-quickstart가 선택 옵션으로 제시된다.
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 171: [엔터]

템플릿 버전을 선택하는 것이며, 기본값으로 최신버전이 제시된다.
Choose org.apache.maven.archetypes:maven-archetype-quickstart version: [엔터]

프로젝트를 진행하는 조직 아이디를 지정한다. 일반적으로 프로젝트를 추진하는 그룹의 도메인 네임을 사용한다.
Define value for property 'groupId': : com.store

프로젝트를 진행하는 조직에서 추진하는 여러 가지 프로젝트 가운데 이번에 생성할 프로젝트에 대한 식별자 아이디를 지정한다.
Define value for property 'artifactId': : myApp

프로젝트의 초기 버전을 지정한다.  '1.0-SNAPSHOT' 기본값으로 이 제시된다.
Define value for property 'version':  1.0-SNAPSHOT: : [엔터]

프로젝트 패키지 명을 지정한다. 일반적으로 패키지명으로 해당조직의 도메인 네임을 사용한다.
따라서 위 groupId와 동일한 이름이 제시된다.
Define value for property 'package':  com.store: : [엔터]

재확인 절자  엔터
 Y: : [엔터]

한데... 이렇게 매번 마다 설정하는 방법 말고는 없는 것일까? 그렇다면 다른것이 있는지 알아보자

[일반 애플리케이션]
mvn archetype:generate -DgroupId=com.ufinite -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart

[웹 애플리케이션]
mvn archetype:generate -DgroupId=com.ufinite -DartifactId=mywebproject -DarchetypeArtifactId=maven-archetype-webapp

이렇게 하면 한번에 설정 되기도 한다.
또한, sts나 이클립스 툴에서 사용하면 편하게 사용할 수 도 있다.

이렇게 하면 디렉터리와 기본 파일들이 생성되게 된다.

src/main/java: 프로젝트 소스 코드 폴더
src/test/java: 단위 테스트 코드 폴더
pom.xml: 메이븐 프로젝트 파일

src/main/resources: 리소스 파일의 경로다. 리소스 파일에는 웹 애플리케이션에서 사용할 메시지 프로퍼티 파일, 프레임워크에서 사용할 각종 환경 설정 파일이 포함된다. resources 폴더에 위치한 파일은 빌드 시점에 클래스 파일과 같은 경로로 복사된다.
src/main/webapp: 웹 콘텐츠 폴더
pom.xml: 메이븐 프로젝트 파일

pom.xml
Project Object Model 의 약어로 메이븐 프로젝트의 모든 정보가 이 한 개의 파일에 기술 된다.

위 구조를 보면 독립형 애플리케이션과 달리 자바 소스 파일이 담길
src/main/java
src/test/java
폴더가 존재하지 않는 것을 알 수 있다. 그러나 웹 애플리케이션도 독립형 애플리케이션과 동일한 소스 디렉터리 구조를 사용하므로
독립형 애플리케이션 구조를 참조해서 폴더를 만들고 자바 소스 코드를 작성하면 된다.

댓글 없음:

댓글 쓰기