pom.xml 에는 아래처럼 repository 정보와 넣고자 하는
내 jar 를 위한 dependency 입력합니다.
<repositories>
<repository>
<id>my-project-local-repo</id>
<name>custom jars repo</name>
<url>file://${basedir}/lib</url>
<!-- basedir 는 현재 maven 프로젝트의 루트 경로입니다 -->
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>me.dailycode</groupId>
<artifactId>sample-lib</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
groupId
에는 절대로 -
를 사용하여 단어를 나누면 안됩니다!-
를 쓰면 뭔가 잘 안될 겁니다 😂
<repository>
에 작성한 url 인file://${basedir}/lib
경로에
이제 jar 를 넣어주면 됩니다. 그런데 그냥 jar 만 툭 넣는다고 되는게 아닙니다!
maven 이 라이브러리를 찾을 수 있도록 저희가 디렉토리 구조를 잡아줘야 합니다!
아래 dependency 와 그림을 비교해가면서 어떻게 디렉토리를 생성하고,
jar 파일을 어떤 이름으로 넣어야 되는지 스스로 짐작하시기 바랍니다.
어렵지 않습니다!
<dependencies>
<dependency>
<groupId>me.dailycode</groupId> <!-- me 폴더, dailycode 폴더 생성 -->
<artifactId>sample-lib</artifactId> <!-- sample-lib 폴더 생성 -->
<version>1.0.0</version> <!-- 1.0.0 폴더 생성 -->
</dependency>
</dependencies>
위 그림에서
*.jar
뿐만 아니라*.pom
이라는 파일이 있는데,
아래처럼 작성해주면 됩니다.<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.oㅋrg/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>me.dailycode</groupId> <artifactId>sample-lib</artifactId> <version>1.0.0</version> <name>sample-lib</name> <!-- 그외 부수적인 내용들... 필요하면 추가 --> </project>
주의
: 혹여 maven 으로 package 한 jar 면, 해당 jar 를 패키징할 때 사용한
pom.xml 의 내용을 그대로 복붙하시면 됩니다.
intellij
에서는 Project 탭
에서 External Libraries
를 확인하면 됩니다.
jar 내부의 내용물도 펼쳐서 쉽게 볼 수 있어서 좋습니다.
사실 자신이 갖고 있는 jar 를 추가하기 쉬운 방법으로는 System Dependency 를
쓸 수도 있습니다만, Maven 공식 문서를 보면 더 이상 쓰지 말라고 충고를 해줍니다.
그리고 Deprecated 되도 난 사용할 거야!
라고 생각하는 분들을 위해 한말씀 올리자면
System Scope 을 사용해서 mvn package
를 하면 해당 jar
의 내용이 빠집니다.
그래서 spring boot jar
패키징은 특별한 세팅을 더 해줘야 하고
war 패키징의 경우에는 maven-war-plugin
에 webResource
태그를
주렁주렁 자식 태그로 더 작성해야합니다.
이럴 바에는 그냥 local repository 를 설정해서 씁시다 😊