Eclipse 에서 시작하는 Maven

Maven에 대한 원론적인 이야기보다는 Eclipse 에서 쓸 수 있는 Maven 관련 명령들이 무엇을 의미하는지 스스로 정리하는 겸 간략하게 정리해보았습니다.

Maven(메이븐)

1. Maven?

  • 아파치 재단에서 Ant 를 대체하기 위해 나온 빌드 도구(Build Tool)
    • 빌드 도구란?
      • 프로젝트의 생성, 테스트, 배포 등의 작업을 위한 프로그램을 의미.
      • 대표적인 자바 빌드 도구로는 Ant, Maven, Gradle 등이 있다.
    • 필요한 라이브러리를 pom.xml 이라는 파일에 정의해 놓으면 내가 사용하는 라이브러리와 함께 해당 라이브러리에 의존하는 다른 라이브러리들까지 같이 사용할 수 있게 자동으로 받아와준다. (이를 '의존성 전이' 라고 부른다)
    • 메이븐 라이브러리를 한 곳에서 관리하기 위하여 '메이븐 중앙 저장소' 가 존재한다.

2. pom.xml

  • Project Object Model 의 약자로 Maven 프로젝트 하나당 하나만 존재하는 파일이다.
  • 이 파일 안에는 프로젝트의 설정이나 다양한 라이브러리들의 의존성들이 xml의 형식으로 기재되어 있다.
<!-- 전자정부 프레임워크 pom.xml 중 일부 -->
<dependency>
    <groupId>egovframework.rte</groupId>
    <artifactId>egovframework.rte.psl.dataaccess</artifactId>
    <version>${egovframework.rte.version}</version>
</dependency>

3. Eclipse 로 보는 Maven 관련 메뉴들

  • Eclipse 를 사용하고 있는 경우 IDE 안에서 Maven 을 지원하기 때문에 별도의 설치 없이 사용이 가능하다.

  • Build
    • Build 메뉴를 처음 클릭하면 아래와 같이 Goals 를 적을 수 있는데, 여기에 메이븐 관련 명령들을 입력하면 (ex: clean insatll 이런식으로 입력하면 clean 후 install 진행) 그에 맞게 메이븐 명령이 수행된다.
  • Clean
    • Build 로 생성된 파일들을 삭제 (target 디렉토리)
  • Generate-sources
    • 소스 코드 생성이라는데 직접 수행해도 별 일이 안일어나서 잘 모르겠다 ㅠㅠ
  • Insatll
    • 로컬 리포지토리 (즉, 개발자 PC) 에 배포 진행
    • C:\Users\[USER_NAME]\.m2\repository\[PROJ_NAME]\[VER_NO] 에 .pom 과 .war 파일이 만들어진다.
  • Test
    • 프로젝트의 테스트 코드 (src/test/java) 를 실행하는데, target/test-classes 폴더와 컴파일된 클래스 파일이 생성되고, target/surefire-reports 폴더에 테스트 결과가 기록됨.
  • Update Maven Project
    • Eclipse 에서 프로젝트의 설정을 pom.xml 과 동기화하는 것을 말한다.
    • 아마 Eclipse 를 주로 사용하는 사람들이라면 Maven Clean 하고 Update Maven Project 를 자주 하는 것을 볼 수 있을 것이다.

좋은 웹페이지 즐겨찾기