Maven 입문 | Maven 프로젝트 작성 | 프로젝트 생성(archetype:generate)


Maven에서 개발한다면, 먼저 해야 하는 것은 “프로젝트 생성"이다. 이것은 Maven 명령을 사용한다.

명령 프롬프트 또는 터미널을 시작하고, 프로젝트를 만들 위치에 현재 디렉토리를 이동한다. “cd {작업디렉토리}“라고 입력하면 작업 디렉토리로 이동한다. 그러고 다음과 같이 명령을 실행한다.

$ mvn archetype:generate

잠시 기다리고 있으면, 긴 텍스트가 출력될 것이다. 이것은 사용 가능한 프로젝트 템플릿의 목록이다. 1000개 이상이기 때문에, Maven에 익숙하지 않다면 무시해도 된다.

$ mvn archetype:generate
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> am.ik.archetype:maven-reactjs-blank-archetype (Blank Project for React.js)
2: remote -> am.ik.archetype:msgpack-rpc-jersey-blank-archetype (Blank Project for Spring Boot + Jersey)
3: remote -> am.ik.archetype:mvc-1.0-blank-archetype (MVC 1.0 Blank Project)

...중략...

2012: remote -> us.fatehi:schemacrawler-archetype-plugin-lint (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1095: 

그대로 Enter 또는 Return 키를 누르면, maven-archetype-quickstart라는 템플릿이 선택된다.

이것은 Maven으로 프로젝트를 만들 때 퀵 스타트 템플릿이다. Maven으로 프로젝트를 만들 때에 가장 기본이 되는 것이다. 이 maven-archetype-quickstart를 선택하면 차례로 프로젝트 정보를 입력하라고 나오는데 차근히 입력을 하면 된다.

maven-archetype-quickstart 버전

Choose org.apache.maven.archetypes : maven-archetype-quickstart version :

1 : 1.0-alpha-1
2 : 1.0-alpha-2
3 : 1.0-alpha-3
4 : 1.0-alpha-4
5 : 1.0
6 : 1.1
Choose a number : 6 :

먼저 maven-archetype-quickstart 버전을 묻는다. 디폴트로 최신 버전이 선택되어 있기 때문에 그대로 Enter 또는 Return을 누른다.

그룹 ID

Define value for property 'groupId': :

그룹 ID라는 프로젝트를 생성하는 개인 또는 단체를 의미 ID이다. 여기에서는 예제로 com.devkuma라고 입력할 것이다.

아티팩트 ID

Define value for property 'artifactId':

아티팩트 ID는 만드는 프로젝트의 ID이다. 개발 프로그램에 할당되는 ID라고 생각하면 된다. 여기에서는 예제로 SampleMavenApp라고 입력한다.

버전

Define value for property 'version': 1.0-SNAPSHOT :

프로그램의 버전을 지정한다. 기본적으로 “1.0-SNAPSHOT"라고 되어 있기 때문에, 이것은 그대로 할 것이기에, 아무것도 입력하지 않고 Enter 또는 Return를 누룬다.

패키지

Define value for property 'package': com.devkuma :

프로그램을 배치할 패키지를 지정한다. 디폴트로 그룹 ID가 그대로 설정되어 있는 것이다. 특히 문제가 없으면 그대로 Enter 또는 Return를 누른다.

입력 확인

Confirm properties configuration :
groupId : com.devkuma
artifactId : SampleMavenApp
version : 1.0-SNAPSHOT
package : com.devkuma
 Y :

지금까지 입력한 내용이 표시된다. 문제가 없으면 그대로 Enter 또는 Return를 누르면 프로젝트를 만들어진다. 문제가 있는 경우는 “n"을 입력하고 Enter/Return를 누르면 다시 입력 할 수 있다.

[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /Users/kimkc/dev/mvn
[INFO] Parameter: package, Value: com.devkuma
[INFO] Parameter: groupId, Value: com.devkuma
[INFO] Parameter: artifactId, Value: SampleMavenApp
[INFO] Parameter: packageName, Value: com.devkuma
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /Users/kimkc/dev/mvn/SampleMavenApp
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:05 min
[INFO] Finished at: 2017-12-11T22:56:34+09:00
[INFO] Final Memory: 11M/143M
[INFO] ------------------------------------------------------------------------