본문 바로가기
Tools

[IntelliJ] Maven Helper 플러그인 설치 및 사용법

by A6K 2023. 3. 17.

메이븐(Maven)은 여전히 가장 많이 사용되고 있는 빌드 시스템 중 하나다. 메이븐을 이용하여 자바 프로젝트에서 사용하는 라이브러리들을 쉽게 가져올 수 있고 프로젝트의 빌드, 테스트, 배포 등을 쉽고 직관적으로 관리할 수 있다.

하지만 메이븐 프로젝트의 가장 큰 단점은 의존성 충돌이다. 프로젝트에서 사용하는 서로 다른 두 라이브러리가 같은 라이브러리의 다른 버전을 사용할 경우 메이븐은 두 버전 중 하나만 선택해서 로드한다. 의존성 충돌(Dependency Conflict)이라는 이런 상황에 놓일 경우 운이 좋으면 두 버전이 호환되어 문제가 없겠지만, 운이 나쁘면 호환되지 않는 쪽에서 NoSuchMethodException이 발생하거나 아예 동작이 달라지는 경우도 발생한다.

메이븐 프로젝트를 관리하다보면 이런 의존성 문제를 자주 만나게 되고, 해결을 해야하는데 실제로 문제가 생기기전에 의존성 충돌 상황을 확인할 수 있다면 편할 것이다.

IntelliJ의 경우 메이븐 프로젝트를 위한 몇 가지 기능을 제공하는 'Maven Helper' 플러그인을 사용할 수 있다. (링크 : JET BRAINS Marketplace - Maven Helper)

Maven Helper 플러그인 설치

Maven Helper 플러그인은 IntelliJ의 Plugins 메뉴의 Marketplace에서 조회 및 설치할 수 있다. IntelliJ 화면 상단의 IntelliJ IDEA > Settings > Plugins 화면으로 들어간다.

검색 창에 "maven helper"를 치면 Maven Helper라는 플러그인이 나온다. Install 버튼을 눌러서 설치해준다. (위 화면은 이미 설치된 후라서 Install 버튼이 없다)

플러그인 설치가 끝나면 IntelliJ IDEA를 재시작한다.

Maven Helper 플러그인 사용법 - 의존성 분석

maven helper 플러그인의 가장 유용한 기능인 의존성 분석 기능을 사용해보자. 메이븐 프로젝트의 메타 정보를 담고 있는 pom.xml 파일을 열어보자.

pom.xml 파일을 편집할 수 있는 에디터 화면이다. 하단을 보면 Maven Helper 설치 이전에는 볼 수 없었던 'Dependency Analyzer' 탭이 생긴 것을 볼 수 있다. 기본으로 열리는 Text 탭은 pom.xml 파일을 편집하기 위한 탭이고, Dependency Analyzer 탭은 프로젝트의 의존성을 분석할 수 있는 GUI 탭이다.

Dependency Analyzer 탭을 열어보면 현 프로젝트에서 포함하고 있는 의존성 리스트들을 인덴트로 구분되는 트리 형태로 볼 수 있다. (All Dependencies as Tree 선택시) 혹은 충돌하고 있는 의존성들만 출력하도록 선택할 수도 있다. (Conflicts 선택시)

검색 창에 키워드를 입력하면 키워드에 해당하는 의존성이 하이라이트되어 보여지며, Filter 체크박스를 선택하면 키워드에 매칭되는 의존성만 표시해준다.

예제로 만들어본 프로젝트에서는 mina-core 라이브러리와 sshd-core 라이브러리가 slf4j-api 라이브러리를 함께 사용하고 있는데, sshd-core 라이브러리의 경우 1.7.30 버전으로 컴파일되었지만 1.7.21 버전으로 로드되어 사용하고 있음을 보여준다. 이 처럼 프로젝트에서 가져다 사용하고 있는 라이브러리들의 버전 충돌 상황을 쉽게 볼 수 있다는 점이 Maven Helper 플러그인의 장점이다.

Maven Helper 플러그인 사용법 - goal 실행

메이븐 골(Goal) 혹은 플러그인을 클릭 몇 번으로 실행할 수도 있다. pom.xml 파일에서 우클릭을 하면 'Run Maven' 항목이 있다.

Run Maven 항목의 서브 아이템들로 실행할 수 있는 메이븐 골(Goal)들을 확인할 수 있다. 새로운 Goal을 만들거나 실행하고 싶은 플러그인을 지정할 수도 있다.

 

댓글