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.