일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IntelliJ
- 자바 ORM 표준 JPA 프로그래밍
- 친절한 SQL 튜닝
- JPA
- 리눅스
- vue.js
- CompletableFuture
- @TransactionalEventListener
- Spring Cloud Netflix
- javascript case
- 원격 브랜 삭제
- ksqldb
- java
- ksql
- intellij 즐겨찾기
- Linux
- #docker compose
- findTopBy
- multipart테스트
- intellij favorites
- HandlerMethodArgumentResolver
- 자바 ORM 표준 JPA 프로그래밍 정리
- git
- 마이크로 서비스
- Stream
- 백명석님
- intellij 핵심 단축키
- @Transactional Propagation
- 리팩토링 2판
- aws
- Today
- Total
시그마 삽질==six 시그마
Maven에 jar 삽입 및 배포시 인식 본문
항상 센트럴과 넥서스만 dependency하여 사용하다가 이번에 custom jar를 넣어서 배포할 일이 생겼다.
자바 빌드 패스에 잡아줘을때는 로컬에서는 잘 돌아가던 녀석이
(jar는 WEB-INF/lib에 넣어줬다. 넣은 jar를 maven 빌드패스에 인식시키는건 요기를 참조)
개발서버등에 배포할때는 jar 빌드를 못하는 것이었다.
그때는
방법1
<dependency>
<groupId>anything</groupId> <!-- Doesn't matter -->
<artifactId>youwant</artifactId> <!-- Doesn't matter -->
<version>0.1</version> <!-- Doesn't matter -->
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jar_name.jar</systemPath>
</dependency>
systemPath에 저렇게 넣어주면 인식할 수 있다.
이 방법은 scope이 system 이라 명시적으로 jar를 프로젝트에 넣어줘야한다.
(그래서 난 WEB-INF/lib 폴더에 넣어줬다.)
${project.basedir} 설명은 요기와 요기 참조
scope 설명은 요기 참조
상단에 있는 방법도 좋지만 deprecated되었기에
두번째 방법!!
프로젝트 루트에 /lib 폴더를 만들어준후...(솔직히 위치는 어디든 상관없다. 하단에 그 위치만 잘 넣어주면됨)
로컬 repository 만들기
<dependency>
<groupId>something</groupId> <!-- Doesn't matter -->
<artifactId>my-custom</artifactId> <!-- Doesn't matter -->
<version>1.0.0</version> <!-- Doesn't matter -->
</dependency>
<repository>
<id>myrepo</id> <!-- Doesn't matter -->
<name>local-repo</name> <!-- Doesn't matter -->
<url>file://${project.basedir}/lib</url>
</repository>
이 때 ${project.basedir}/lib 속의 폴더구조는 maven 디렉토리 구조에 의거
groupId/artifactId/version/jar이름으로 맞춰야한다.
최종적으로는 이렇게 적용이된다
${project.basedir}/lib/something/my-custom/1.0.0/my-custom-1.0.0.jar
(센트럴이나 넥서스를 사용했다면 자동으로 들어갔겠지만 로컬리포이기에 동일하게 jar를 넣어준다)
참조: https://stackoverflow.com/questions/36176415/maven-add-external-jar-folder-to-classpath
참조(최하단): https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html