반응형
SpringBoot로 개발된 프로젝트를 다른 프로젝트에 jar Dependency로 종속성을 걸어서 사용할 경우 실제 빌드하고 실행을 하면 jar내에 있는 클래스들에 대해 ClassNotFoundException이 발생한다.
이유는 SpringBoot는 jar를 생성할 때 기본적으로 독립적으로 실행이 가능한 jar를 생성하기 때문에 jar 내부를 보면 BOOT-INF 디렉토리가 생성되고 필요한 클래스 및 의존 라이브러리들이 내부에 존재 함.
jar가 위와 같은 구조에서는 독립적인 실행은 가능하지만, 다른 프로젝트에 의존성 설정하고 라이브러리로 사용은 불가능하다
해결 방법은 pom.xml에서 spring-boot-maven-plugin 의 repackage 설정을 추가한다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
위 설정을 하고 jar빌드를 해보면 아래와 같이 구조가 변경된 것을 확인할 수 있고, 다른 프로젝트 Dependency 라이브러리로 사용이 가능하다.
반응형
'개발 > SpringBoot' 카테고리의 다른 글
java 어플리케이션 실행 시 JVM args(JAVA_OPTS) 적용 (0) | 2021.12.08 |
---|---|
SpringBoot Jsaypt 사용 application.yml 암호화 (0) | 2021.12.03 |
SonarQube 설치 및 구성 (0) | 2021.11.30 |
SpringBoot Scouter APM 구성 (0) | 2021.11.30 |
SpringBoot @Async 사용 (0) | 2021.10.27 |
댓글