Maven 명령어(Goal)이란?

1 분 소요

앞에서 말헀듯이 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이 생성한다.


Reference

댓글남기기