在 Android studio 中使用 gradle 删除发布版本上的代码行

Avi*_*vin 5 android android-gradle-plugin

我已经构建了一个带有 Logger 类的 SDK JAR 项目,该类通知系统日志。例如:

Logger.log("第123行错误,请检查", Logger.SDK_DEBUG);

目前我可以使用的日志级别很少。

在 JAR 构建过程之前,我会在发布构建时删除代码中带有 Logger.SDK_DEBUG 的所有日志消息。用 Gradle 可以做到这一点吗?

Avi*_*vin 3

我编写了一个 gradle 脚本,用于处理项目中所有 Logger 行的删除。您需要在任何 Gradle 构建命令之前运行它。

task deleteJavaDebugLogs << {
    description("This function will delete all SDK DEBUG log level from the project, be careful with it!")
    //Put your project full path for exmple 'src/main/java/myproject' , the path must be with quotes
    FileTree  javaFiles = fileTree('[your_project_path]') {
        // if you have more files that are not .java include them also.
        include '**/*.java'
    }
    String regex = "Logger.log[^,]+[^L]+(.*)Logger.SDK_DEBUG[^;];"
    javaFiles.each { File javaFile ->
        println "Start replacing regex on $javaFile.name"
        String content = javaFile.getText()
        content = content.replaceAll(regex, "")
        javaFile.setText(content)
    }
}
Run Code Online (Sandbox Code Playgroud)

祝你好运!:)