아래는 제목과 같은 일을 하기 위해 검색하던 중 발견한 블로그의 글 입니다.
위의 블로그에서 참조 하였습니다.
============================================================================================================
maven-shade-plugin 을 사용하면 프로젝트에 포함된 모든 dependency 를 포함해서
단 하나의 jar 파일로 패키지 해주는데 spring 관련 dependency가 여러개 있을 경우엔
META-INF 안의 spring.handlers 랑 spring.shcemas 파일을 덮어 써버린다. -_-;;
springFramework 의 applicationContext.xml 에서 springBatch 관련 xml 을 import 한다거나 할때
namespace 등을 찾지 못해 xml 파싱 에러가 난다는 …
maven-shade-plugin 을 쓸때는 반드시 아래와 같이 AppendingTranseform을 지정해 주자.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation=“org.apache.maven.plugins.shade.resource.AppendingTransformer”>
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation=“org.apache.maven.plugins.shade.resource.AppendingTransformer”>
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>