메이븐은 Jetbrains 2020년 리포트에 따르면 현재 자바 개발자가 가장 많이 사용하는 빌드툴이다.

Despite the popularity of Maven (71%) and Gradle (48%), 9% of Java developers still prefer Ant for building their projects.
Java Programming - The State of Developer Ecosystem in 2020 Infographic
JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

설치하는 방법은 매우 간단한데, 압축 파일 형태로 제공하는 패키지를 다운받아서 압축을 풀고 사용하면 그만이다. 단, 메이븐이 제공하는 CLI를 사용하려면  JAVA_HOME이라는 환경 변수가 있어야 하니까 메이븐 압축 파일을 내려 받기 저넹 등록해 두거나 압축 파일을 풀고 메이븐 CLI를 사용하기 전에 등록해도 상관없다.

설치 방법은 메이븐 홈페이지에 있으니 가급적이면 이 글의 도움없이 홈페이지 문서를 읽어보고 스스로 설치할 수 있길 바란다.

Maven – Installing Apache Maven

이제부터 저 글을 보고도 도무지 갈피를 잡지 못하는 분들을 위해 설명하겠다.

메이븐 설치란?

메이븐을 설치한다는 것은 메이븐이 배포하는 압축 파일을 풀면 보이는 bin 디렉토리 안에 들어있는 mvn이라는 커맨드를 어느 위치에서나 사용할 수 있게끔 PATH 환경 변수에 추가하는걸 뜻한다. 뭐 사실 PATH에 추가하지 않고 매번 "메이븐 압축 푼 디렉토리/bin/mvn" 이렇게 쓰고 싶은 분들은 그렇게 써도 되겠지만... 굳이..??

메이븐 설치하기

  1. 메이븐 바이너리 패키지 다운로드 및 압축 풀기

다운로드 페이지로 이동해서 바이너리 압축 파일 중에 하나를 내려 받고 압축을 푼다.

소스 압축 파일은 메이븐 소스를 압축한거라 메이븐을 사용하데 필요하진 않다. 메이븐 소스 코드를 수정해서 빌드해서 쓰고 싶을 때 사용하겠지만 대부분은 그럴 일이 없으니 패스.

2. JAVA_HOME 환경 변수 체크

리눅스나 맥을 사용중이라면 커맨드 창에서 echo $JAVA_HOME을 실행해서 현재 환경 변수 JAVA_HOME의 값을 확인할 수 있다. 메이븐은 자바를 사용하기 때문에 자바 홈 경로를 알고 있어야 하는데 그 경로를 알아내는 방법으로 JAVA_HOME이라는 환경 변수를 참조하기 때문이다.

➜  ~ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

이런식으로 JDK를 설치한 경로가 보이나면 끝. 안보이면? 자바를 설치했는지 부터 확인해보고 (java -version과 javac -version 이 동작하는지..), 자바가 설치된 디렉토리를 찾아 JAVA_HOME 환경 변수를 등록하기 바란다. (이것도 어떻게 하는지 모를 수 있겠지만 자기가 사용하는 운영체에 환경 변수 등록하는 방법 정도는 제발...)

3. 메이븐 압축 푼 디렉토리 이동 및 PATH 설정

보통은 브라우저에서 기본으로 내려받는 디렉토리에 파일을 받고 압축을 풀었을텐데 그 디렉토리는 자주 비우기도 하니까 거기보단 조금 더 안정적이고 툴을 모아둘만한 곳으로 압축 푼 디렉토리를 옮기도록하자. 나는 내 유저 홈 디렉토리 및에 apps라는 디렉토리를 만들고 옮겨뒀다.

자 그럼 이제 그 압축 풀고 옮겨온 디렉토리의 bin 디렉토리를 PATH 환경 변수에 추가하면 끝!

export PATH="/Users/whiteship/apps/maven/bin:$PATH"

보통 이런 명령을 자기 계정 유저 쉘을 읽어올 때 사용하는 프로필에 추가하는데 이것도 역시 자신이 사용하는 운영체제에 따라 그리고 자신이 사용하는 쉘에 따라 달라질 수 있으니 자기 환경에 맞게 설정하기 바란다. 나는 맥에서 ohmyzsh이라는 걸 쓰고 있어서 유저 홈 디렉토리에 있는 .zshrc라는 파일을 수정했지만 는데 아마 맥 기본은 유저 홈 디렉토리에 .bash_profile 이라는 파일 안에 쓰면 될 것이다.

최종적으로 mvn -v를 실행해서 메이븐과 자바 관련 버전 정보가 출력되는지 확인하면 끝!

되돌아 보자

이 글을 대체 왜 썼느냐! 누군가 물어봐서 쓰긴했는데 '이게 왜 어려워서 물어보는걸까?' 생각하지 않을 수 없었는데 이게 어렵고 문제가 생기려면 자신이 사용하는 운영체제에 대한 기본 지식 없어야 한다. 환경 변수가 뭔지 모르고, 환경 변수를 어떻게 설정하는지 모를 수도 있고, 압축 푸는 방법을 모르거나, 메이븐의 바이너리 압축 파일과 소스 압축 파일의 차이, PATH라는 환경 변수의 역할과 설정 방법, 쉘 초기화 과정 등 나는 언제 어떻게 알게 됐는지도 까마득히 잊어버린 이런 것들을 모르기 때문에 메이븐 설치 자체가 어려웠을거라 추측한다. 그런 분들은 이 글을 통해서 메이븐을 설치했다 하더라도 왜 어려웠는지 되돌아보며 기본을 다지기 바란다.