2013-04-18 14 views
5

私のjarファイルに含まれるリソースをフィルタリングしようとしています。私はshade-maven-pluginを使用していますが、これは私の生成したjarファイルにすべての依存関係のすべてのリソースを追加しています。ここでフィルタリソースmaven-shade-plugin

は私のPOMの定義である:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>1.6</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <minimizeJar>true</minimizeJar> 
         <transformers> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <mainClass>es.app.applet.MyApplet</mainClass> 
          </transformer> 
         </transformers> 
        </configuration> 
       </execution> 
      </executions> 
      <configuration> 
       <filters> 
        <filter> 
         <artifact>*:*</artifact> 
         <excludes> 
          <exclude>META-INF/*.SF</exclude> 
          <exclude>META-INF/*.DSA</exclude> 
          <exclude>META-INF/*.RSA</exclude> 
          <exclude>META-INF/*.RSA</exclude> 
         </excludes> 
        </filter> 
       </filters> 
      </configuration> 
     </plugin> 

私はすべてのリソースを削除し、唯一の私の成果物リソースを追加する別のフィルタを追加するために次のフィルタを追加しようとしましたが、それは動作しません。

    <filter> 
         <artifact>*:*</artifact> 
         <excludes> 
          <exclude>resources/*.*</exclude> 
         </excludes> 
        </filter> <filter> 
         <artifact>my.groupId:my.artifactId</artifact> 
         <includes> 
          <include>resources/*.*</include> 
         </includes> 
        </filter> 

アイデア?

ありがとうございました。

+0

あなたのフィルタはあなたのリソースを保持していませんでしたか? – Genjuro

答えて

2

これは、フィルタ除外の前にフィルタが含まれているためです。

あなたのコードには、 "my.groupId:my.artifactId" - > resources/が含まれています。 aterwardsあなたはすべてを除くされ

しかし、 "リソース/ 。" オリジナルdocumentationから

:論理的な観点から

は、除外前に処理されていることと、 はこのようにそれを使用することが可能ですインクルードは からファイルセットを収集し、次に除外を使用してセットをさらに減らします。