모래블로그

[Maven] 외부 라이브러리 jar 추가하여 배포하기 본문

Framework/Spring

[Maven] 외부 라이브러리 jar 추가하여 배포하기

별모래 2024. 10. 24. 16:34
728x90

 

 

NICE 본인인증을 구현하기 위해 거기서 제공해주는 jar 모듈을 추가하여 배포해야하는 일이 생겼다.

 

그래서 <scope> <systemPath> 이용하는 방법이 가장 간단해보여서 선택했다.

 

1. <scope> <systemPath> 이용

<dependency>
    <groupId>nice</groupId>
    <artifactId>niceID</artifactId>
    <version>1.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/libs/NiceID_v1.1.jar</systemPath>
</dependency>

 

위와 같은 방식으로  pom.xml dependency를 추가했다.

 

로컬 환경에서는 본인인증이 문제없이 잘 작동했다.

 

 

그런데 배포를 하니까 개발서버에서는 작동하지 않는 문제가 발생했다.

 

개발서버에서 오류가 나서 로그를 보니 NoClassDefFoundError가 발생했고, 

찾아보니 위의 방법대로 하면 maven 빌드 시 해당 jar파일이 누락된다고 한다.

 

그래서 다른 방식으로 해보기로 했다.


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

pom.xml에 localRepository 를 추가하는 것인데, 

 

 

pom.xml에 repository 경로를 설정해주어야 한다.

 

id, name은 임의로 내 마음대로 지었고,

url은 jar 파일이 저장될 url을 입력해주면 되는 것 같다.

나는 프로젝트 루트/libs에 저장할 것이라서 아래와 같이 입력했다.

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

 

 

pom.xml 에 dependency를 추가하는데 여기엔 groupId, artifactId, versjon을 입력한다

 

그리고 저것은 파일 경로파일 이름이 된다.

 

groupId/artifactId/version/artifactId-version.jar 형식을 맞춰야하는 것이다.

 

예를 들어, 이렇게 입력을 했다면

<dependency>
    <groupId>nice</groupId>
    <artifactId>NiceID</artifactId>
    <version>1.1</version>
</dependency>

 

nice -> NiceID -> 1.1 의 디렉토리 안에 NiceID-1.1.jar 파일이 들어가있어야 한다는 것이다. (파일명을 맞게 변경해주었음)

 

 

여기까지 완료했다면,

 

 

배포할 때 mvn install을 해줘야한다.

 

 

아래의 형식대로 입력한다.


mvn install:install-file -Dfile=파일경로/파일명.jar -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dpackaging=jar


 

예를 들어, 


mvn install:install-file -Dfile=./libs/nice/NiceID/1.1/NiceID_1.1.jar -DgroupId=nice -DartifactId=NiceID -Dversion=1.1 -Dpackaging=jar


 

이렇게 입력하면 되는 것이다.

 

 

그래서위의 형식대로 입력하여 mvn install을 해주고 mvn clean package 해준 후 배포를 완료했더니

문제 없이 본인인증이 개발서버에서도 잘 작동했다.

 

 


REFERENCES🙇‍♀️

https://m.blog.naver.com/ubinannie/222790931380

https://devpad.tistory.com/152

https://sleepyeyes.tistory.com/43

 

 

728x90