Use the proguard plugin for gradle
diff --git a/baksmali/build.gradle b/baksmali/build.gradle
index 150eb6f..3af2d65 100644
--- a/baksmali/build.gradle
+++ b/baksmali/build.gradle
@@ -29,8 +29,13 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-configurations {
-    proguard
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath depends.proguard_gradle
+    }
 }
 
 dependencies {
@@ -41,8 +46,6 @@
 
     testCompile depends.junit
     testCompile project(':smali')
-
-    proguard depends.proguard
 }
 
 processResources.inputs.property('version', version)
@@ -81,22 +84,22 @@
     }
 }
 
-task proguard(type: JavaExec, dependsOn: fatJar) {
+task proguard(type: proguard.gradle.ProGuardTask, dependsOn: fatJar) {
     def outFile = fatJar.destinationDir.getPath() + '/' + fatJar.baseName + '-' + fatJar.version + '-small' + '.' + fatJar.extension
-    inputs.file fatJar.archivePath
-    outputs.file outFile
 
-    classpath = configurations.proguard
-    main = 'proguard.ProGuard'
-    args '-injars ' + fatJar.archivePath
-    args '-outjars ' + outFile
-    args '-libraryjars ' + System.properties['java.home'] + '/lib/rt.jar'
-    args '-dontobfuscate'
-    args '-dontoptimize'
-    args '-keep public class org.jf.baksmali.main { public static void main(java.lang.String[]); }'
-    args '-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }'
-    args '-dontwarn com.google.common.**'
-    args '-dontnote com.google.common.**'
+    injars fatJar.archivePath
+    outjars outFile
+
+    libraryjars "${System.properties['java.home']}/lib/rt.jar"
+
+    dontobfuscate
+    dontoptimize
+
+    keep 'public class org.jf.baksmali.main { public static void main(java.lang.String[]); }'
+    keepclassmembers 'enum * { public static **[] values(); public static ** valueOf(java.lang.String); }'
+
+    dontwarn 'com.google.common.**'
+    dontnote 'com.google.common.**'
 }
 
 tasks.getByPath(':release').dependsOn(proguard)
diff --git a/build.gradle b/build.gradle
index 80743e1..7e03b5f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -90,7 +90,7 @@
                    stringtemplate: 'org.antlr:stringtemplate:3.2.1',
                    commons_cli: 'commons-cli:commons-cli:1.2',
                    jflex: 'de.jflex:jflex:1.4.3',
-                   proguard: 'net.sf.proguard:proguard-base:4.8'
+                   proguard_gradle: 'net.sf.proguard:proguard-gradle:5.1'
          ]
     }
 
diff --git a/smali/build.gradle b/smali/build.gradle
index 0f43d75..5f09e0f 100644
--- a/smali/build.gradle
+++ b/smali/build.gradle
@@ -32,7 +32,15 @@
 configurations {
     antlr3
     jflex
-    proguard
+}
+
+buildscript {
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath depends.proguard_gradle
+    }
 }
 
 ext.antlrSource = 'src/main/antlr3'
@@ -75,7 +83,6 @@
 
     antlr3 depends.antlr
     jflex depends.jflex
-    proguard depends.proguard
 }
 
 task generateParserAntlrSource(type: JavaExec) {
@@ -171,22 +178,23 @@
     }
 }
 
-task proguard(type: JavaExec, dependsOn: fatJar) {
-    def outFile = fatJar.destinationDir.getPath() + '/' + fatJar.baseName + '-' + fatJar.version + '-small' + '.' + fatJar.extension
-    inputs.file fatJar.archivePath
-    outputs.file outFile
+task proguard(type: proguard.gradle.ProGuardTask, dependsOn: fatJar) {
+    def outFile = fatJar.destinationDir.getPath() + '/' + fatJar.baseName + '-' +
+            fatJar.version + '-small' + '.' + fatJar.extension
 
-    classpath = configurations.proguard
-    main = 'proguard.ProGuard'
-    args "-injars ${fatJar.archivePath}(!**/TestStringTemplate*.class)"
-    args "-outjars ${outFile}"
-    args "-libraryjars ${System.properties['java.home']}/lib/rt.jar"
-    args '-dontobfuscate'
-    args '-dontoptimize'
-    args '-keep public class org.jf.smali.main { public static void main(java.lang.String[]); }'
-    args '-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }'
-    args '-dontwarn com.google.common.**'
-    args '-dontnote com.google.common.**'
+    injars fatJar.archivePath
+    outjars outFile
+
+    libraryjars "${System.properties['java.home']}/lib/rt.jar"
+
+    dontobfuscate
+    dontoptimize
+
+    keep 'public class org.jf.smali.main { public static void main(java.lang.String[]); }'
+    keepclassmembers 'enum * { public static **[] values(); public static ** valueOf(java.lang.String); }'
+
+    dontwarn 'com.google.common.**'
+    dontnote 'com.google.common.**'
 }
 
 tasks.getByPath(':release').dependsOn(proguard)