본문 바로가기
개발/SpringBoot

SpringBoot jar를 타 프로젝트에 Dependency 라이브러리로 추가

by 궁즉변 변즉통 통즉구 2021. 12. 3.
반응형

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 라이브러리로 사용이 가능하다.

 

반응형

댓글