在 gradle 脚本中检索依赖于 Flavor 和 BuildType 的 class 路径
Retrieve the Flavor and BuildType dependent class path within gradle script
我正在尝试使用 'javah' 命令生成 JNI headers,为此我需要传递包含项目 .class 文件的目录。以前使用 ant 这是一个静态位置,但它是动态的,具有 gradle.
上的 buildTypes 和 productFlavors
gradle中是否有代表class路径的变量?例如我想检索 build/intermediates/classes/debug/、build/intermediates/classes/dev/debug/ 等
我在使用 gradle 1.2.3,我尝试使用 'sourceSets.main.output.classesdir' 但我收到一个错误,指出在源集主目录上找不到 'output'。
我无法找到动态确定 buildType 和 productFlavor 的直接方法,但我通过检查任务图找到了解决方案。
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(assembleRelease)) {
buildTypeClassPath = "build/intermediates/classes/release"
} else {
buildTypeClassPath = "build/intermediates/classes/debug"
}
}
我认为可以通过将 hasTask(assembleRelease) 的检查更改为 hasTask(assembleProdRelease) 来调整此解决方案以合并 productFlavors
我正在尝试使用 'javah' 命令生成 JNI headers,为此我需要传递包含项目 .class 文件的目录。以前使用 ant 这是一个静态位置,但它是动态的,具有 gradle.
上的 buildTypes 和 productFlavorsgradle中是否有代表class路径的变量?例如我想检索 build/intermediates/classes/debug/、build/intermediates/classes/dev/debug/ 等
我在使用 gradle 1.2.3,我尝试使用 'sourceSets.main.output.classesdir' 但我收到一个错误,指出在源集主目录上找不到 'output'。
我无法找到动态确定 buildType 和 productFlavor 的直接方法,但我通过检查任务图找到了解决方案。
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(assembleRelease)) {
buildTypeClassPath = "build/intermediates/classes/release"
} else {
buildTypeClassPath = "build/intermediates/classes/debug"
}
}
我认为可以通过将 hasTask(assembleRelease) 的检查更改为 hasTask(assembleProdRelease) 来调整此解决方案以合并 productFlavors