From 80555678dff0b685c425e4bbcf26ba236d126e2b Mon Sep 17 00:00:00 2001 From: WonderCsabo Date: Fri, 31 Oct 2014 19:01:14 +0100 Subject: [PATCH] Add custom exclude filter to ProGuardMojo With this option the user can exclude any file from the ProGuard input. --- .../plugins/android/configuration/Proguard.java | 6 ++++++ .../phase04processclasses/ProguardMojo.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/com/jayway/maven/plugins/android/configuration/Proguard.java b/src/main/java/com/jayway/maven/plugins/android/configuration/Proguard.java index f9dbd1a1f..71bbbda68 100644 --- a/src/main/java/com/jayway/maven/plugins/android/configuration/Proguard.java +++ b/src/main/java/com/jayway/maven/plugins/android/configuration/Proguard.java @@ -27,6 +27,7 @@ public class Proguard private String[] jvmArguments; private Boolean filterMavenDescriptor; private Boolean filterManifest; + private String customFilter; private Boolean includeJdkLibs; private String[] options; private Boolean attachMap; @@ -65,6 +66,11 @@ public Boolean isFilterMavenDescriptor() { return filterMavenDescriptor; } + + public String getCustomFilter() + { + return customFilter; + } public Boolean isFilterManifest() { diff --git a/src/main/java/com/jayway/maven/plugins/android/phase04processclasses/ProguardMojo.java b/src/main/java/com/jayway/maven/plugins/android/phase04processclasses/ProguardMojo.java index 3d0e531ed..7cfaf1a23 100644 --- a/src/main/java/com/jayway/maven/plugins/android/phase04processclasses/ProguardMojo.java +++ b/src/main/java/com/jayway/maven/plugins/android/phase04processclasses/ProguardMojo.java @@ -62,6 +62,7 @@ public class ProguardMojo extends AbstractAndroidMojo * <proguardJarPath>someAbsolutePathToProguardJar</proguardJarPath> * <filterMavenDescriptor>true|false</filterMavenDescriptor> * <filterManifest>true|false</filterManifest> + * <customFilter>filter1,filter2</customFilter> * <jvmArguments> * <jvmArgument>-Xms256m</jvmArgument> * <jvmArgument>-Xmx512m</jvmArgument> @@ -192,6 +193,17 @@ public class ProguardMojo extends AbstractAndroidMojo @PullParameter( defaultValue = "true" ) private Boolean parsedFilterManifest; + + /** + * You can specify a custom filter which will be used to filter out unnecessary files from ProGuard input. + * + * @see http://proguard.sourceforge.net/manual/usage.html#filefilters + */ + @Parameter( property = "android.proguard.customfilter" ) + private String proguardCustomFilter; + + @PullParameter + private String parsedCustomFilter; /** * If set to true JDK jars will be included as library jars and corresponding filters @@ -534,6 +546,10 @@ private List< ProGuardInput > getProgramInputFiles() { globalInJarExcludes.addAll( MAVEN_DESCRIPTOR ); } + if ( parsedCustomFilter != null ) + { + globalInJarExcludes.addAll( Arrays.asList( parsedCustomFilter.split( "," ) ) ); + } // we first add the application's own class files inJars.add( createProguardInput( projectOutputDirectory.getAbsolutePath() ) );