[sns project] 배포 jar 파일에 외부 라이브러리 import

Intellij spring boot 외부 라이브러리 추가

Intellij IDEA -jar 파일 export, import

이는 해당 블로그 를 참고하였다.

배포 jar 파일에 외부 라이브러리 import

이는 해당 블로그를 참고하였다.

해당 프로젝트는 generator project 에서 로컬 repository 를 사용한다. 이를 배포할 jar 파일을 만들 때 에러가 발생했다.

intellij에 외부 라이브러리를 추가하는 방법이외의 다른 방법이 필요했다.

pom.xml에 repository 추가

pom.xml에 다음과 같이 정의하여 로컬을 repository로 활용한다.

1
2
3
4
5
6
7
	<repositories>
		<repository>
			<id>local-repository</id>
			<name>local repository</name>
			<url>file://${project.basedir}/repo</url>
		</repository>
	</repositories>

dependency 추가

1
2
3
4
5
		<dependency>
			<groupId>org.markov</groupId>
			<artifactId>markov</artifactId>
			<version>1.0.0</version>
		</dependency>

이 때, ${project.basedir}/repo 는 maven 디렉토리 구조를 따르도록 구성해야 한다.

위의 예제는 다음과 같이 구성한다.

1
2
3
${project.basedir}/repo/org/markov/markov/1.0.0/markov-1.0.0.jar

# ${project.basedir}/repo/groudId 이름/artifactId 이름/version/markov-1.0.0.jar

본 예제는 groupId가 . 으로 구분됏기에 디렉토리 구조가 한 단계 늘어난다.

maven clean and install

기존 캐시를 지우기 위해 -U 옵션을 추가한다.

1
$ ./mvnw -U clean install

하지만 외부 jar 파일을 수정하고 다시 수행하니 에러가 발생하였다. 다음 명령어 후 다시 install 하니 에러가 해결되었다.

(해당 pom.xml 에 명시된 dependency 들에 대해서 Local(~/.m2/repository)에 다운 받아 놓은 라이브러리들을 모두 지우고 다시 받아 준다.)

1
$ ./mvnw dependency:purge-local-repository