Maven

Maven에 대해 알아보자 ③ : Maven 설정파일 작성방법(pom.xml) - build

OhPro 2022. 5. 14. 16:35
반응형

오늘도 어김없는 적당한 메이븐 짤~

 


 

목차

  • 시작하며
  • 메이븐 빌드 설정
  • 마치며

 


시작하며

저번 포스팅에 이어 메이븐 설정파일인 pom.xml에서 설정하는 것의 하나인

빌드에 대해 포스팅하려고 한다.

 

개인적으로는 "포스팅이 너무 길어지면 보는 사람입장에서 읽기 부담스럽지 않을까?"

하는 생각에 나누게 되었다.

 


 

메이븐 빌드 설정

일단 내가 만든 메이븐 프로젝트의 설정파일을 먼저 살펴보면,

(참고로 아무것도 손대지 않은 프로젝트입니다.. 단지 아키타입이 webapp임)

 

빌드 설정 (build)

 

build

<build> : 빌드와 관련된 설정을 가진 태그들을 가진 태그로,
소스 디렉터리 경로, 산출물 디렉터리 경로, 빌드 플러그인 설정을 할 수 있다.
<pluginManagement> : 기본적으론 <plugins>라는 태그와 똑같이 플러그인들을 감싸는 태그지만,<plugins>와 다른 점은 pom.xml도 상속을 할 수 있는데, 상속할 때 부모와 자식간 플러그인 세팅 정보를 공유할 수 있다고 한다.
<finalName> : 최종 빌드 시 생성되는 프로젝트 이름이다.
<plugin> : Maven 빌드 시 각 페이즈(이전 포스팅 참고)에 필요한 플러그인 한 가지를 기입할 수 있는 태그이다.

이전 포스팅에서 Maven의 생명주기 각 단계인 페이즈에 대해 이야기 했었는데,
골은 실제 수행해야 할 실제 작업이고 페이즈는 각 단계를 정의한 개념이다.

좀더 자세히는 플러그인에는 한 개에서 여러 개의 골(goal)이 존재하고, 
골 단위로 명령어를 직접 입력하여 명령을 실행해볼 수 있다.

당연히 페이즈 단위의 명령어도 존재하는데 페이즈 명령어를 직접 사용할 경우,
최초 페이즈부터 순서대로 골을 실행하여 사용자가 입력한 페이즈의 단계까지 자동으로 수행된다고 한다.
<artifactId> : 해당 플러그인의 artifaceId로, 아티팩트에 대한 설명은 지난 포스팅을 참조하면 될 것 같다.
<version> : 해당 플러그인의 버전이다.

 

이 외에도 아래의 태그들을 빌드 태그 하위에서 사용할 수 있다.

<sourceDirectory> : 자바 소스 코드를 관리하는 디렉토리 설정 태그
<testSourceDirectory> : 테스트 소스를 관리하기 위한 디렉토리 설정 태그
<outputDirectory> : sourceDirectory의 소스를 컴파일한 결과물이 위치하는 디렉트리 설정 태그
<testOutputDirectory> : testSourceDirectory의 소스를 컴파일한 결과물이 위치하는 디렉토리 설정 태그

 


 

마치며

일단 지금까지 메이븐 포스팅을 하면서 게시한 이미지들은 모두 내가 토이프로젝트를 위해 만들고 아직 건들지 않은 pom.xml의 내용인데,

솔직히 요약하면서 몰랐던 내용을 많이 알게되서 향후 메이븐 프로젝트를 진행할 때 도움이 많이 될 것 같다.

 

한 가지 아쉬운 점은 아직 경험이 많지 않은 탓도 있겠지만,

개인적으로 "빌드 툴이라면 이런 것쯤은 있어야한다" 라는 명확한 가치관이 아직까진 서지 않는 것 같다.

(열심히 해야겠다 ^^)

 

감사합니다!

반응형