2013-07-15 39 views
9

Mam sekcji w pom.xmlJak mogę wykluczyć pliki * .DSA i * .SF z zacienionego słoika?

<filters> 
    <filter> 
     <artifact>*:*</artifact> 
     <excludes> 
      <exclude>META-INF/*.SF</exclude> 
      <exclude>META-INF/*.DSA</exclude> 
     </excludes> 
    </filter> 
</filters> 

Chcę wykluczyć * .SF i pliki * .DSA od ostatecznego słoika. Ale pojawia się następujący komunikat:

[INFO] No artifact matching filter *:* 

i pliki nie są wykluczone. Czy ktoś wie, jak go pokonać?

+0

pokrewne: [Maven wyjątków cień rzut jar] (http://stackoverflow.com/q/8302022/ 320399) – blong

Odpowiedz

5

Miałem ten sam problem. Zostało to naprawione przez uczynienie selektora artefaktów bardziej specyficznym, np.

<artifact>bouncycastle:*</artifact> 

Cały blok wygląda następująco:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <transformers> 
        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
         <mainClass>com.mycompany.MainClass</mainClass> 
        </transformer> 
       </transformers> 
       <filters> 
        <filter> 
         <artifact>bouncycastle:*</artifact> 
         <excludes> 
          <exclude>META-INF/*.SF</exclude> 
          <exclude>META-INF/*.DSA</exclude> 
          <exclude>META-INF/*.RSA</exclude> 
         </excludes> 
        </filter> 
       </filters> 
       <shadedArtifactAttached>true</shadedArtifactAttached> 
       <shadedClassifierName>standalone</shadedClassifierName> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
+0

Próbowałem, że (bez ManifestResourceTransformer), nie działa dla mnie, pliki BCKEY. * Nadal tam są. Próbowałem też artefaktu '*: *: *: *'. To stara odpowiedź, czy od tego czasu zmieniła się składnia Mavena? –

13

Właściwie można zrobić filtrowanie globalną bez konieczności podać identyfikator grupy, wystarczy użyć poprawnej składni wieloznaczny. Jeśli chcesz, aby wykluczyć wszystkie pliki * .RSA od słoika, na przykład określić artifactId jako *:*:*:*

<filters> 
    <filter> 
     <artifact>*:*:*:*</artifact> 
     <excludes> 
      <exclude>*.RSA</exclude> 
     </excludes> 
    </filter> 
</filters> 
+0

Nie wyklucza "META-INF/ECLIPSE.SF" i "META-INF/ECLIPSE.RSA". Jeszcze bardziej interesujące jest to, że wcale nie używam zaćmienia, używam Intellij. – Searene

+0

Pozwoliło mi to usunąć brzydki plik license.txt ze słoika, włączając w to linię LICENSE.txt