아래는 제목과 같은 일을 하기 위해 검색하던 중 발견한 블로그의 글 입니다.

[http://blog.naver.com/qola]

위의 블로그에서 참조 하였습니다.

============================================================================================================

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>

Leave a Reply

Your email address will not be published. Required fields are marked *