我使用Gradle,并且想使用ProGuard缩小库。这看起来很简单:只需将ProGuard添加到buildscript的类路径并创建ProGuard任务(example)。
然后我将获得一个新的jar,但是如果我在另一个模块中编写compile project(':library')
或执行:library:bintrayUpload
任务,仍将使用旧的jar。
如何在之前收缩库jar并将其作为依赖项传递给Bintray或传递给Bintray?
答案 0 :(得分:0)
假设有一个proguard
任务。
def libraryJar = rootProject.file(
"${project.name}/build/libs/${project.name}-${project.version}.jar")
def shrinkedJar = rootProject.file(
"${project.name}/build/libs/${project.name}-${project.version}-shrinked.jar")
jar.finalizedBy proguard
proguard.doLast {
if (!libraryJar.delete()) throw new IllegalStateException()
if (!shrinkedJar.renameTo(libraryJar)) throw new IllegalStateException()
}
就是这样!