일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 배포시 systempath
- maven systempath
- port 죽이기
- object tostring
- 자바object다형성
- 외부 라이브러리 jar 배포
- 자바
- niceid_v1.1.jar maven
- java object 클래스
- maven jar 배포
- 졸프
- maven repository jar
- map multivaluemap
- 맥북 port kill
- object 배열
- nice_v1.1.jar
- maver 외부 jar 배포
- Object
- object다형성
- maven 외부 라이브러리 배포
- 스프링
- map vs multivaluemap
- object 다형성
- JS
- java
- Spring
- object배열
- javascript
- 자바스크립트
- java object 다형성
- Today
- Total
모래블로그
[Maven] 외부 라이브러리 jar 추가하여 배포하기 본문
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
'Framework > Spring' 카테고리의 다른 글
[스프링] Spring 의존성 주입 방법 및 생성자 주입 방법의 장점 (0) | 2023.11.22 |
---|---|
[스프링] Spring WebClient (0) | 2023.11.22 |
[스프링] Spring json 파싱하기 (1) | 2023.11.22 |
[스프링] Spring UriComponents (0) | 2023.11.22 |
[스프링] Spring RestTemplate (0) | 2023.11.22 |