메이븐은 본래 빌드도구와 동시에 라이브러리 의존성을 관리해주는 편리한 기능을 가지고있다.

 개발할때 사용할 외부 라이브러리들을 개발자가 일일이 가져올 필요없이 pom.xml에 등록만 해주면 메이븐이 관련 라이브러리까지 가져와준다. 

 이때 메이븐 repository를 이용하는데 만약 이곳에 없는 외부 라이브러리 혹은 내가 만든 라이브러리를 사용하려면 (메이븐 빌드이용) 어떻게 해야 할까? 

 

1. <scope> <systemPath>를 이용하는 방법

<dependency>
    <groupId>custom</groupId>
    <artifactId>sleepyeyes-custom</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/sleepyeyes-custom.jar</systemPath>
</dependency>

간단하다 2개의 노드 추가로 끝이다.

 

groupId, artifactId, version은 임의로 적어도 무방하며

${project.basedir} 는 프로젝트의 ROOT경로이다.

 

2. 로컬 repository 를 만들어 사용하는 방법

 이방법은 2가지를 기억하면된다.

1. pom.xml에 repository경로 잡아주기

2. 프로젝트내 로컬repsitory 경로 규칙 잘 따라주기.

 

<repository>
    <id>local-repository</id> 
    <name>local repository</name> 
    <url>file://${project.basedir}/repo</url> 
</repository>

pom.xml에 <repositories>태그안에 로컬 경로를 잡아주고

<dependency>
    <groupId>custom</groupId>
    <artifactId>sleepyeyes-custom</artifactId>
    <version>1.0</version>
</dependency>

dependency는 평소와 똑같이 작성하면 된다.

 

단. 아래와 같이 경로를 맞추어 주어야 한다.

groupId/artifactId/version/jar이름

 

디렉토리 구성

 

 

첫번째 방법은 maven빌드시 해당 jar파일이 누락된다고 하니 이클립스 테스트용 정도로만 사용하고

실제 배포시에는 두번째 방법을 사용해야 할 듯 하다

 

참고

https://denodo1.tistory.com/282

http://cooldevlife.blogspot.com/2014/11/maven-build-custom-library.html

'MAVEN' 카테고리의 다른 글

[MAVEN ERROR] Received fatal alert: protocol_version -> [Help 1]  (0) 2018.11.09

+ Recent posts