메이븐(maven)을 쓰는 이유 - pom.xml

메이븐 프로젝트를 쓰는 이유는 라이브러리 관리를 훨씬 편하게 만들어 주기 때문이다.

 

자바 프로젝트를 진행하다 보면 jar 파일(자바 아카이브)을 활용하게 된다. jar 파일은 자바 클래스와 관련된 리소스, 데이터, 클래스 등을 모은 패키지다. 압축을 풀지 않고 사용한다. 즉, 압축된 파일을 프로젝트에 넣어주는 것만으로도 jar 파일이 구현하는 기능을 편리하게 이용할 수 있다.

 

메이븐 없이도 jar 파일을 사용할 수 있다. 그러나 사용하는 jar 파일이 많아질수록 관리가 복잡해지는 문제가 생긴다. 이는 jar 파일이 가지고 있는 의존성 때문이다. 예를 들어 dbcp2라는 jar 파일을 사용하려면 pool2logging과 함께 사용해야 한다. 이처럼 의존성을 가진 jar 파일을 많이 사용하다보면 수동으로 추가해줘야 하는 번거로움이 있고 관리 역시 어려워진다.

 

그런데 메이븐 프로젝트에 있는 pom.xml을 이용하면 이런 문제가 말끔히 해결된다. pom에 코딩을 하는 것만으로도 원하는 jar 파일은 물론 의존하고 있는 다른 jar 파일까지 자동으로 다운받아 사용 가능한 상태가 되기 때문이다.

이런 식으로 작성한다. 위에서 예로든 dbcp2를 추가한 모습이다.

이처럼 pool2와 logging 파일까지 자동으로 사용가능한 상태가 되는 것을 확인할 수 있다.

 

어떻게 텍스트를 넣는 것만으로 라이브러리를 사용할 수 있는 상태가 되는 걸까? pom 파일에 코딩을 하게 되면 메이븐 리포지토리(MVNrepository)라는 사이트에 접근해 해당 파일을 다운 받는다. 메이븐 리포지토리는 라이브러리를 모두 가지고 있는 중앙 저장소다.

 

메이븐 프로젝트를 사용하면 pc에 maven 저장소가 생긴다. m2 폴더가 바로 그곳이다. 다운받은 모든 jar 파일은 이곳으로 저장되고 관리된다. 여기에 저장되는 jar 파일은 컴퓨터 안에 있는 모든 프로젝트가 공유하고 있는 상태가 된다. 때문에 또 하나의 장점이 생긴다. 똑같은 jar 파일을 개별 프로젝트마다 다운받을 필요가 없어진다.

 

폴더 경로: c드라이브 → 사용자(users) → m2

 

m2 폴더 이야기가 나온 김에 참고로 언급하자면, 만약 이클립스에서 jar 파일에 문제가 있는 것 같다고 판단될 때 m2 폴더를 지우고 이클립스를 재시작하는 방법이 유효할 수 있다. 재시작된 이클립스는 pom에 입력된 내용에 맞게 jar 파일을 다시 셋팅하게 되고 원인모를 문제가 해결되는 경우가 많다.

반응형

댓글

Designed by JB FACTORY