自动在应用程序和库之间切换 'personalities'

Switching 'personalities' between app and library automatically

我有两个应用程序,A 和 L。它们独立工作,除了 L 具有双重人格:它还作为 A 的库。

为此,我制作了一个简单的 bash 脚本,该脚本编辑 L 的 build.gradle 以在 com.android.applicationcom.android.library 之间切换 plugin 键.在将 A 和 L 构建为应用程序之前,我 运行 这个 bash 脚本。

这很好用。然而,当我从 Android Studio 构建 A.apk 时,我想自动执行此操作。可能吗?

是的,这是可能的,您可以定义自己的任务来调用脚本并link使用构建命令执行。

点赞

task excuteScript(type: Exec) {
     workingDir "."
     commandLine 'cmd', 'script.bat'
     doLast {
         println "Executed!"
     }
 }
tasks.named("build") { finalizedBy("excuteScript") }

这将在您每次 'build' 投影时调用 excuteScript 任务。 'build' 任务的命名可能存在问题,因为我正在使用 spring 框架,这工作正常,但我不确定 Android 任务的命名。

并且正如 CommonsWare 所建议的那样,将公共代码移动到单独的库模块 M 并让您的两个应用程序使用会更好。

但我认为您可能想知道如何使用自定义任务来完成它。