2015-10-05 82 views
0

是流汗覆蓋我已經在那裏我同時使用spring-beansspring-context罐的應用程序。當我試圖打包使用Maven生成我的依賴應用程序的單個罐子我的應用程序時,spring.schemas文件spring-context罐子被覆蓋了spring-beans罐子。其結果是,這是用我的包裝的jar文件另一個應用程序,不能識別spring-beans的模式位置引用。「spring.schemas」,而包裝

什麼是在這種情況下解決方法?

+0

你用什麼來創建一個罐子。 OneJar插件? – cool

+0

nope ..'Maven Assembly'插件 –

回答

0

研究頗有幾分後,我發現Apache Shade Plugin它能夠追加資源如下的:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
      <id>assembly</id> 
      <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> 
        <transformer 
         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
         <resource>META-INF/spring.tooling</resource> 
        </transformer> 
        <transformer 
         implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" /> 
        <transformer 
         implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> 
         <addHeader>false</addHeader> 
        </transformer> 
       </transformers> 
      </configuration> 
     </execution> 
    </executions> 
</plugin>