Maven 명령어(Goal)이란?
앞에서 말헀듯이 Goal은 어떤 작업을 수행할 지 지정할 수 있다.
몇몇 goal들은 이미 내장되어 있어 Maven이 알아서 작업을 수행한다.
Goal
mvn compile
-
자바 소스 파일을 컴파일
-
컴파일 된 결과는 target/classes에 생성된다.
mvn test
-
테스트 코드를 컴파일한 뒤 테스트 코드를 실행한다.
-
테스트 클래스들은 target/test-classes 디렉터리에 생성된다.
-
테스트 결과 리포트는 target/surefire-reports에 생성된다.
mvn package
-
컴파일된 결과물을 package로 생성(jar, war 등)
-
컴파일 → 테스트 → 빌드 순 진행
-
pom.xml에 기술된 내용으로 파일이 생성
<project>
[생략]
<artifactId>dev</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
[생략]
</project>
위와 같이 기술된 경우 dev-1.0-SNAPSHOT.jar로 생성된다.
- 아마 mvn package 실행 시, 기본 Manifest 속성이 없다고 출력될 수 있다.
실행가능한 JAR 가 아니기 때문이다.
실행하기 위해서maven-jar-plugin
을 이용해 manifest 속성을 추가해줘야 한다.
manifest 속성 추가하기를 참고
mvn clean
- maven 빌드를 통해 생긴 모든 산출물을 삭제
mvn install
- 패키징한 파일을 로컬 저장소에 배포
로컬 저장소 이용하기를 참고
mvn deploy
- 패키징한 파일을 원격 저장소에 배포(nexos 혹은 maven central 저장소)
원격 저장소 이용하기를 참고
mvn exec:java
- 메이븐 표준 플러그인이 아니다.
위의 goal들도 다 plugin으로 추가된 것이다. 다만, maven에서 표준인 것!
- 클래스가 하나라면 java 명령어를 통해 실행이 가능하다.
하지만, 여러 라이브러리를 사용 시 실행이 번거롭다.
그래서 exec-maven-plugin을 사용함으로서 편하게 실행할 수 있다.위의 goal은 다른 표준 goal과 형태가 다르다.
mvn OO:OO의 형태의 이유는 추가한 plugin 에서 여러 goal들을 가질 수 있기 때문이다.
mvn eclipse:eclipse
-
프로젝트를 이클립스 프로젝트로 변환
-
디렉터리 구성 등이 일반적인 이클립스로 변경 된 것은 아니고,
.project
,.classpath
와 같은 파일들이 존재해야 이클립스 프로젝트로 인식하는데 이러한 파일을 프로젝트 디렉토리 생성 -
즉, 이클립스에서 프로젝트를 열 수 있을 뿐이다.
mvn eclipse:to-maven
-
maven 프로젝트로 변환한다.
-
실행 시 ‘Eclipse directory?’라는 질문을 하는데, 사용 중인 이클립스 폴더의 경로를 입력 후 Enter를 누르면 pom.xml이 생성한다.
댓글남기기