Само приложение Java не содержит сторонних библиотечных зависимостей. И если я удаляю задачу obfuscate
и строку jar.finalizedBy(project.tasks.obfuscate)
, стандартный jar собирается и запускается.
Ошибка ..
* What went wrong:
Execution failed for task ':obfuscate'.
> java.io.IOException: Can't write [/Users/rob/git/repo/build/libs/tool.out.jar] (Can't read [/Users/rob/git/repo/build/libs/tool.jar] (Duplicate zip entry [com/example/cli/j.class == tool.jar:com/example/cli/HelperUtils$5.class]))
build.gradle
..
task obfuscate(type: proguard.gradle.ProGuardTask) {
configuration 'proguard.txt'
injars "build/libs/tool.jar"
outjars "build/libs/tool.out.jar"
libraryjars "${System.getProperty('java.home')}/lib/rt.jar"
}
jar {
archiveName = "tool.jar"
from sourceSets.main.output.classesDir
include '**/cli/*.class'
manifest {
attributes 'Main-Class': 'com.example.cli.Tool'
}
}
jar.finalizedBy(project.tasks.obfuscate)
proguard.txt
..
-keep public class com.example.cli.* {*;}
Приложение содержит 3 файла классов Java ..
com.example.cli.Tool (which contains the main)
com.example.cli.HelperUtils
com.example.cli.CustomEnums