728x90


이때까지 우리는 프로젝트를 만들 때 대화식으로 만드는 interactive모드로 만들었다.

이 모드도 크게 불편함은 없긴한데 보통 maven 프로젝트를 만들때는 interactive모드보단 batch모드로 만든다.

그 이유는 첫번째로는 군더더기 로직이 없으며, 두번째로는 빠르게 프로젝트가 만들어지기 때문이다.

한번 프로젝트를 만들어 보자.



mvn archetype:generate -DinteractiveMode=false


interactivemode를 꺼준다. 그러면 batch모드가 자동으로 켜지게된다.(둘은 반대관계)

단 위의 명령어만 사용시에는 제대로 작동하지 않는다. 그 이유는 위의 warning부분을 읽어보면 답이 나온다.

groupId와 artifactId, package가 없기 때문이다.

근데 사실 package는 없어도된다. 여러분들도 알다시피 특별히 기술하지 않는다면 groupId를 따라가기 때문이다.

그럼 명령어에 조금더 추가해보자.



mvn archetype:generate -DinteractiveMode=false  -DgroupId=<패키지명> -DartifactId=<프로젝트명>


위의 조건이 최소 조건이다.

그러면 프로젝트가 만들어지는데 한번 들어가서 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.theceres</groupId>
<artifactId>CommandLineMakeMaven</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>CommandLineMakeMaven</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

interactive모드와는 다르게  코드가 매우 심플하다.

위의 옵션만으로 알 수 있는 것은 그냥 만들면 version을 적지 않으면 기본으로 1.0-SNAPSHOT으로 만든다는것,

그리고 junit은 기본적으로 추가된다는것, 그리고 아카이브 타입은 자동으로 maven-archetype-quickstart(jar를 만듦)가 된다.

정말 기본적인 프로젝트라고 할 수 있다.

지금 소개된 옵션은 총 3가지이고 옵션을 쓰기위해서는 -D를 붙혀준다.

사실 이 옵션은 배치모드의 전용 옵션은 아니다. interactive에서도 쓸순 있다.

단 interactive 에서는 굳이 옵션을 달 필요가 없을뿐.

그러나 추가적으로 몇가지 옵션이 더 존재한다.


interactiveMode - 대화형 모드의 여부를 선택한다, true는 사실상 안적으면 그많이니까 보통 false를 쓰며 false는 대화형 모드를 끄고 배치모드로 전환한다.

groupId - 프로젝트 아이디를 적는다.

artifactId - 패키지 명을 적는다.

archetypeArtifactId - 프로젝트의 결과물을 정한다. 아무것도 안적으면 maven-archetype-quickstart(jar)이 된다.

version - 버전을 적는다. 안적으면 자동으로 1.0-SNAPSHOT이 된다.

package - 패키지 명을 적는다. artifactId를 일반적으로 따라가나 다르게 하고싶다면 적어도된다.



+ Recent posts