2012-05-14 26 views
7

Spring 3.1.1.RELEASE với Apache Maven 3.0.3 và Maven Shade plugin 1.6.Spring 3 NamespaceHandler vấn đề với plugin Maven Shade

Sử dụng các plugin bóng mvn để gói artifact trong một uber-jar, trong đó có phụ thuộc của nó:

<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> 

vẻ đóng gói tốt nhưng trên thực phàn nàn về các vấn đề mùa xuân 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] 

Điều này áp dụng cho cả tên người dùng và không gian tên p, nhưng kỳ vọng không giới hạn ở các địa chỉ này:

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

Nếu tôi viết lại thuộc tính hoặc danh sách (util) các vấn đề biến mất.

Trả lời

17

Thử thêm AppendingTransformer vào cấu hình của bạn. Ví dụ cụ thể đề cập đến điều này là hữu ích cho các trình xử lý Spring.

+0

Tuyệt vời, cảm ơn, đó là giải pháp! –