2012-05-14 10 views
7

Spring 3.1.1.RELEASE con Apache Maven 3.0.3 e Maven Shade plug-in 1.6.Spring 3 NamespaceHandler problemi con il plugin Maven Shade

Utilizzando il plugin ombra mvn per confezionare il manufatto in un uber-jar, tra cui le sue dipendenze:

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

sembra confezionare bene, ma durante l'esecuzione si lamenta di problemi Primavera 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] 

Questo vale sia per gli spazi dei nomi util e p, ma si aspetta che non sia limitato a questi:

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

Se riscrivo la proprietà o la lista (util) longhand i problemi scompaiono.

risposta

17

Prova ad aggiungere un AppendingTransformer alla tua configurazione. L'esempio menziona specificamente questo come utile per i gestori di Spring.

+0

Impressionante, grazie, questa è la soluzione! –