Development/Maven

로컬 레파지토리 설정하기.

南山 2011. 9. 20. 21:51
pom.xml 파일에 라이브러리를 정의해서 사용할때 
maven 중앙 레파지토리에 미처 등록되어 있지 않아서 로컬에 정의해 놓고 사용할때가 있다.

물론 라이브러리 파일만 해당 디렉토리에 넣어두고 사용할 수도 있지만
그렇게 사용할려면 뭐하러 maven 을 사용하나.. 라고 생각하는 나같은 사람이 있기 때문에
로컬 레파지토리를 설정해서 사용하는 방법이 맘 편할때도 있다.

예를 들어서 오라클 11G 의 jdbc 최신 드라이버인 ojdbc6.jar 라이브러리는 아직 maven 중앙 레파지토리에 등록되어 있지 않아서 pom.xml 에 정의를 해도 다운로드 받아서 사용할 수가 없다.

이럴때는 오라클 사이트에서 먼서 ojdbc6.jar 파일을 특정 디렉토리에 다운로드 받은 다음에 
ojdbc6.jar 파일이 있는 디렉토리로 이동한 다음

mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.0 -Dpackaging=jar -DgeneratePom=true



명령어를 실행하면 로컬 레파지토리에 기존 레파지토리의 디렉토리와 똑같은 형태의 ojdbc6 디렉토리가 생성되고 그안에 ojdbc6.jar 파일이 생성되어 있다.

다음 pom.xml 파일을 열어서

<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.0</version>
</dependency>



이런식으로 디펜던시를 걸어 준 뒤에 사용하면 된다.

 
로컬 레파지토리를 설정해서 사용하는 가장 큰 목적은, 
기존의 maven 레파지토리 설정을 해치지 않고 커스텀한 라이브러리까지 maven 레파지토리에 똑같이 적용해서 사용하고자 하는 것이 기본 컨셉이다.


참고로, 
maven 중앙 레파지토리에 라이브러리가 등록되는 속도는 좀 더딘편이다.
최신 라이브러리뿐만 아니라 리릴즈 된지 꽤 된듯한 라이브러리들도 등록되어 있지 않아서 따로 레파지토리에 등록해서 사용하는 경우가 많다.