Can't build ProGuardTask for Gradle via makefile
Java class file shrinker, optimizer, obfuscator, and preverifier
Brought to you by:
guardsquare
cp ../src/proguard/gui/boilerplate.pro ../classes/proguard/gui/boilerplate.pro cp ../src/proguard/gui/default.pro ../classes/proguard/gui/default.pro cp ../src/proguard/gui/vtitle.png ../classes/proguard/gui/vtitle.png cp ../src/proguard/gui/GUIResources.properties ../classes/proguard/gui/GUIResources.properties cp ../src/proguard/gui/arrow.gif ../classes/proguard/gui/arrow.gif jar -cfm ../lib/proguardgui.jar ../src/proguard/gui/MANIFEST.MF -C ../classes proguard/gui/ jar -cfm ../lib/retrace.jar ../src/proguard/retrace/MANIFEST.MF -C ../classes proguard/retrace/ javac -nowarn -Xlint:none -classpath /usr/share/apache-ant/lib/ant.jar:/usr/share/java/gradle/lib/plugins/gradle-plugins-1.3.jar:/usr/share/java/gradle/lib/gradle-base-services-1.3.jar:/usr/share/java/gradle/lib/gradle-core-1.3.jar:/usr/share/java/gradle/lib/groovy-all-1.8.6.jar:/usr/local/java/wtk/wtklib/kenv.zip -sourcepath ../src -d ../classes ../src/proguard/ant/ProGuardTask.java Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. cp ../src/proguard/ant/task.properties ../classes/proguard/ant/task.properties jar -uf ../lib/proguard.jar -C ../classes proguard/ant/ javac -nowarn -Xlint:none -classpath /usr/share/apache-ant/lib/ant.jar:/usr/share/java/gradle/lib/plugins/gradle-plugins-1.3.jar:/usr/share/java/gradle/lib/gradle-base-services-1.3.jar:/usr/share/java/gradle/lib/gradle-core-1.3.jar:/usr/share/java/gradle/lib/groovy-all-1.8.6.jar:/usr/local/java/wtk/wtklib/kenv.zip -sourcepath ../src -d ../classes ../src/proguard/gradle/ProGuardTask.java ../src/proguard/gradle/ProGuardTask.java:24: error: package org.gradle.api does not exist import org.gradle.api.*; ^ ../src/proguard/gradle/ProGuardTask.java:25: error: package org.gradle.api.file does not exist import org.gradle.api.file.*; ^ ../src/proguard/gradle/ProGuardTask.java:26: error: package org.gradle.api.tasks does not exist import org.gradle.api.tasks.TaskAction; ^ ../src/proguard/gradle/ProGuardTask.java:40: error: cannot find symbol public class ProGuardTask extends DefaultTask ^ symbol: class DefaultTask ../src/proguard/gradle/ProGuardTask.java:979: error: cannot find symbol private ConfigurableFileCollection resolvedFiles(Object files) ^ symbol: class ConfigurableFileCollection location: class ProGuardTask ../src/proguard/gradle/ProGuardTask.java:1015: error: cannot find symbol ConfigurableFileCollection fileCollection, ^ symbol: class ConfigurableFileCollection location: class ProGuardTask ../src/proguard/gradle/ProGuardTask.java:955: error: cannot find symbol @TaskAction ^ symbol: class TaskAction location: class ProGuardTask ../src/proguard/gradle/ProGuardTask.java:971: error: cannot find symbol return getProject().file(resolvedString(file)); ^ symbol: method getProject() location: class ProGuardTask ../src/proguard/gradle/ProGuardTask.java:982: error: cannot find symbol return getProject().files(new Object[] { resolvedString(files) }); ^ symbol: method getProject() location: class ProGuardTask Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 9 errors makefile:95: recipe for target '../classes/proguard/gradle/ProGuardTask.class' failed make: *** [../classes/proguard/gradle/ProGuardTask.class] Error 1
My system:
OS: ArchLinux x64
jdk7-openjdk 7.u45_2.4.3
make 4.0
This error is present in 4.10 release as well.
I just found that the issue exists because makefile wants gradle-1.3 but my version was 1.8. So I needed to update gradle-jars to end with "-1.8", not "-1.3" to fix it.
I wonder if you can somehow probe the version for auto-replace in makefile or something.
Last edit: Doctoror 2013-11-21
I've updated the makefile for ProGuard 4.11 beta7; it now refers to Gradle 1.8. Developers can always change and test these dependencies themselves.