복붙노트

[SPRING] Maven Shade 플러그인으로 Spring 3 NamespaceHandler 문제 발생

SPRING

Maven Shade 플러그인으로 Spring 3 NamespaceHandler 문제 발생

아파치 메이븐 3.0.3과 메이븐 쉐이드 플러그인 1.6을 사용한 Spring 3.1.1.RELEASE.

maven shade plugin을 사용하여 종속물을 포함하여 uber-jar에서 artifact를 패키징합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
        <phase>package</phase>
        <goals>
            <goal>shade</goal>
        </goals>
        <configuration>
            <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                    <mainClass>com.MyApplication</mainClass>
                </transformer>
            </transformers>
        </configuration>
    </execution>
</executions>

그냥 괜찮아요하지만 실행에 봄 NamespaceHandler 문제의 불평 패키지 것 :

Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/util]
Offending resource: class path resource [spring/test-context.xml]

이것은 util 및 p-namespace 모두에 적용되지만 다음에 국한되지는 않습니다.

xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"

속성이나 목록 (유틸리티)을 다시 작성하면 문제가 사라집니다.

해결법

  1. ==============================

    1.구성에 AppendingTransformer를 추가하십시오. 이 예제에서는 Spring 핸들러에 유용하다고 명시되어 있습니다.

    구성에 AppendingTransformer를 추가하십시오. 이 예제에서는 Spring 핸들러에 유용하다고 명시되어 있습니다.

  2. from https://stackoverflow.com/questions/10584752/spring-3-namespacehandler-issues-with-maven-shade-plugin by cc-by-sa and MIT license