【问题标题】:Shrink plain Java library with ProGuard within Gradle在 Gradle 中使用 ProGuard 收缩普通 Java 库
【发布时间】:2018-06-20 18:04:41
【问题描述】:

我使用 Gradle,并且想使用 ProGuard 缩小库。这看起来很简单:只需将 ProGuard 添加到 buildscript 的类路径并创建 ProGuard 任务 (example)。

然后我会得到一个新的jar,但是如果我在另一个模块中写compile project(':library')或执行:library:bintrayUpload任务,旧的jar仍然会被使用。

如何在 Gradle 将其作为依赖项或传递给 Bintray 之前收缩库 jar?

【问题讨论】:

    标签: java gradle proguard


    【解决方案1】:

    假设有一个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()
    }
    

    就是这样!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2019-08-14
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多