프로그래밍 /Tool

Maven 에서 JAR 파일을 더하는 방법 (How to add a customized dependency in Maven)

Aerosky 2014. 8. 28. 08:49

[출처: 구글 이미지 검색]



Maven 은 아파치 (Apache) 에서 관리되고 있는 프로젝트중 하나이고 Apache Ant 와 Apache Gradle 와 같이 Java 에서 가장 많이 사용되고 있는 빌드 툴 중에 하나이다. '메이븐' 이라고 읽으며 소프트웨어 프로젝트 관리 종합 툴이라고 하지만 대부분 개발자가 Maven 은 빌드 용으로만 사용하고 프로젝트 관리를 하기 위해서는 다른 툴을 쓰는 추세인건 같다. 


Maven 에 대한 자세한 설명은 다음 기회에 적어보기로 하고 여기서는 Maven 에 새로운 JAR 파일을 어떻게 하면 더할수 있는지 살펴보자. Maven 에서 dependency 라는게 있는데 Maven 프로젝트 설정파일인 pom.xml 을 보면 가끔식 이런 에러가 나타날수 있다.




Artifact 가 없다니 그게 무슨말인가? Maven 에서는 일반적으로 사용되는 library 들이 있는데 여기서 library 는 대부분 Java JAR 파일들을 의미한다. Apache Library, Spring Library, Tomcat library 등등 모든 개발자들이 공통적으로 사용하는 library 는 인터넷에서 쉽게 여러가지 library 를 관리하는 repository 가 존재하며 
그 대표적인 경우는 http://search.maven.org/ 이다. Maven 에서 dependency 를 더할때 이런 library 를 사용하는걸 의미하며 보통 groupId, artifactId, 그리고 version 으로 이루어진 각 라이브러리 마다 유일한 시그네쳐가 있다. 그러므로 이 시그네쳐만 pom.xml 에 새로운 dependency 로 더하기만 하면 내가 쓰는 프로젝트에 다운로드해서 쓸수 있다.


하지만 어떨때는 회사안에서만 배급되는 JAR 파일이나 내가 직접만든 JAR 파일이 있으면 어떻게 해야 할까? 방식은 총 4가지가 있다.


  1. 프로젝트에 일반적인 path 로 더하기
  2. 새로운 Maven Dependency 로 더하지만 scope 를 system 으로 더하기
  3. Sonatype 같은 internal repository 를 구축해서 새로운 Jar 을 더하기
  4. JAR 파일을 repository 에 인스톨 하기


첫번째 방법으로 Eclipse 나 프로젝트 설정을 통해서 library path 로 더하는 방식이 있다. 하지만 이미 Maven 프로젝트를 만들었는데 이렇게 하면 Maven 으로 만든 의미가 없기 때문에 옮지 않은것 같다.


두번째 방식은 JAR 파일을 더하고 scope 를 system 으로 설정하면 JAR 파일이 있는 경로를 <systemPath>...</systemPath> 로 설정할수 있다. 하지만 이 방법 역시 Maven 의 방식을 깨트리는거기 때문에 옮지 않은것 같다.


새번째 방식은 개인 서버안이나 회사안에서 쓰는 서버에 Sonatype Nexus 같은 repository 를 설치해서 새로운 JAR 파일을 인스톨하는 방식이다. 사실 이 방식이 제일 flexible 하긴 하지만 복잡하고 여기서는 4번째 방식을 살펴보기로 하자.


4번째 방식은 JAR 파일을 dependency 로 개인 repository 에 인스톨하는 방식이다. 윈도우에서는  .m2 폴더가 있는데 여기서 개인 maven repository 를 설정할수 있다. 그리고 개인 JAR 파일이 있는곳에 가서 다음과 같은 명령어를 입력한다.



mvn install:install-file -DgroupId=[dependency 그룹 아이디] -DartifactId=[dependency 이름] -Dversion=[dependency 버젼] -Dpackaging=[dependency 패키지 포맷] -Dfile=[dependency 파일을 다운로드 할수 있는 곳]


예를 들어 내가 다운로드해서 인스톨 하고 싶은 파일이 Spring Core 4.1.4 이고 다운로드 한 파일이 spring-core-4.1.4.jar 로 C:\Users\Admin\Downloads 폴더에 있으면 


mvn install:install-file -DgroupId=org.springframework -DartifactId=spring-core -Dversion=4.1.4 -Dpackaging=jar -Dfile=C:\Users\Admin\Downloads\spring-core-4.1.4.jar 


를 console 에 치면 개인 (local) repository 에 설치 시킬수 있다.