我使用 Gradle,我想用 ProGuard 缩小一个库。这看起来很简单:只需将 ProGuard 添加到 buildscript 的类路径并创建 ProGuard 任务 (example)。
我会得到一个新的 jar ,但如果我写 compile project(':library')
在另一个模块中或执行:library:bintrayUpload
任务,旧的 jar 仍然会被使用。
如何缩小库 jar 之前 Gradle 接受它并进一步传递,作为依赖项还是 Bintray?
最佳答案
假设有 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()
}
就是这样!
关于java - 在 Gradle 中使用 ProGuard 收缩普通 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50954499/