이때까지 우리는 프로젝트를 만들 때 대화식으로 만드는 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를 일반적으로 따라가나 다르게 하고싶다면 적어도된다.
'Usage > Java-Project Management' 카테고리의 다른 글
[Maven]maven 으로 실행(execute하기)-plugin사용(6) (0) | 2018.06.01 |
---|---|
[Maven]실행가능한 jar파일 만들기(5) (0) | 2018.06.01 |
[Maven]maven lifecycle(3) (1) | 2018.06.01 |
[Maven]maven project만들기(2) (0) | 2018.05.31 |
[Maven]maven설치와 환경설정(1) (0) | 2018.05.30 |