【发布时间】:2022-01-03 11:32:55
【问题描述】:
我正在寻找一种简单的方法来确定在我的库的 build.gradle 脚本(在任务中)中是否正在为调试或发布模式构建 Android 应用。
我有一个名为prepareHermes 的任务,它提取一个.aar 文件。我目前总是提取调试变体,但在发布版本中我想使用发布变体:
task prepareHermes() {
doLast {
def IS_DEBUG = // TODO: here
def aarName = IS_DEBUG ? "hermes-debug.aar" : "hermes-release.aar"
def hermesAAR = file("$hermesPackagePath/android/${aarName}")
if (!hermesAAR.exists()) {
throw new GradleScriptException("The hermes-engine npm package is missing \"android/${aarName}\"", null)
}
def soFiles = zipTree(hermesAAR).matching({ it.include "**/*.so" })
copy {
from soFiles
from "$reactNative/ReactAndroid/src/main/jni/first-party/hermes/Android.mk"
into "$thirdPartyNdkDir/hermes"
}
}
}
这个任务后来在各个地方使用(参见完整代码here),所以制作两个单独的任务(prepareHermesDebug 和prepareHermesRelease)有点不方便,因为我有大量重复的代码。 (此任务是其他一些任务的依赖项,如完整代码所示。)
【问题讨论】: