Maven으로 첫 걸음

이때까지 Java 및 Spring을 이용하여 개발을 진행할 때, 빌드 도구로써 gradle을 많이 사용하였습니다.

gradle의 좋은 점은 상대적으로 패키지 관리 시에 간결하게 정의된다는 점과 Groovy라는 언어를 사용하기 때문에 자바 개발자들에게는 이해하기 쉽다는 점이 있었습니다.

하지만 현재에도 많은 Spring 프로젝트들은 Gradle 보다는 Maven으로 관리가 되고 있습니다.

필자가 새롭게 공부를 시작한 Spring Boot의 교재에서도 Maven을 사용하고 있기도 하고요.

그래서 Maven으로 프로젝트를 구성하면서 새롭게 학습해보기로 하였습니다.

 

*.jar . 빌드 산출물에 접근하여 실행하기

교재에서는 Intellij에서 바로 결과물을 실행할 수 있는 기능보다는 *.jar라는 실행 가능한 Java 클래스 파일 모음 및 meta 데이터 및 리소스 파일 모음을 통하여 실행하도록 하였습니다. gradle을 통해 터미널에서 빌드하는 것과는 또 다른 실행 방법이 필요하였습니다. 먼저, 인텔리제이에서 빌드 결과물을 가져오는 설정은 다음과 같습니다.

 

먼저, Intellij의 탭에서

[File] - [Project Structure] - [Project Settings] - [Artifacts] 로 이동합니다.

그 이후에 [+] 버튼을 눌러 Artifact를 추가해주는데, [JAR] - [From Modules With Depedencies]를 눌러줍니다.

 

 

그 이후에는 빌드할 모듈 및 MainClass를 선택해줍니다.

빌드할 모듈에 관한 META 데이터 경로도 선택해줍시다.

 

 

[OK]를 누른 다음 [Project Structure] 창을 벗어나도록 합시다.

이후에는 Intellij의 탭에서 [Build] - [Build Artifacts] 를 선택하여 빌드를 진행할 수 있습니다.

 

빌드가 끝나면 현재 프로젝트에 [out] 이라는 경로가 생기면서 해당하는 jar 파일이 만들어진 것을 확인할 수가 있습니다.

 

.jar 파일이 제대로 빌드되지 않았다?

하지만 해당 경로에서 .jar 파일을 실행하면 제대로 실행되지 않는 경우가 있습니다.

빌드할 때마다 조금씩 다르게 나오긴 하는데, 빈이 제대로 설정이 되지 않았다는 결과가 많았습니다.

Maven을 쓸 경우에는 위의 방법처럼 Intellij 에서의 빌드보다는 오른쪽 탭에 뜬 [Maven]을 활용하는 것이 좋다는 정보를 얻게 되었습니다.

저희는 [Maven] - [$Project 명] - [LifeCycle] - [package]를 더블 클릭하여 관련 패키지까지 함께 묶인 .jar 형식의 파일을 생성해보도록 하겠습니다.

 

target 밑에 생성된 .jar 형태의 빌드 결과물

이후에는 target 경로 밑에 .jar 결과물이 나오게 됩니다.

해당 방법을 통해서 만든 .jar 파일은 실행 시에 Argument를 넣어도 잘 동작하는 것을 확인할 수가 있었습니다.

 

 

 

 

 

 

+ Recent posts