Maven Shade Plugin Filter Kullanımı
31-08-2014
Maven shade plugin'nin
Örnek:
Örnekte yer alan
<filters> elementi ile bir dependency'i veya bu dependency içerisinde bulunan bir dosyayı exclude edebiliriz. Bunun için <filters> elementi içerisinde bulunan <artifact> elementinin değerini, exclude etmek istediğimiz dependency'nin groupId'sine veya groupId ve artifactId değerlerini birlikte kullanarak set etmemiz gerekir. Örnek:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-mxj-gpl-db-files</artifactId>
<version>5.0.12</version>
</dependency>
</dependencies>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!-- Main class -->
<mainClass>olyanren.java.database.mysql.embeded.ConnectorMXJObjectTestExample</mainClass>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</transformer>
</transformers>
<filters>
<filter>
<artifact>mysql:mysql-connector-mxj-gpl-db-files:*</artifact>
<excludes>
<exclude>platform-map.properties</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Örnekte yer alan
<artifact>mysql:mysql-connector-mxj-gpl-db-files:*</artifact> değerinde bulunan mysql: ifadesi, dependency'nin groupId'sini temsil eder. Eğer <artifact>mysql:*</artifact> demiş olsaydık, mysql groupId'sine sahip olan tüm dependency'ler içerisindeki platform-map.properties dosyaları exclude olurdu.