如何使用 gradle 进行树外安卓构建

mri*_*ian 5 android gradle android-gradle-plugin

cmake 最引人注目的特性之一是树外构建范式,它使人们能够将项目的变体构建到单独的文件夹中,从而可以更快地在构建配置之间切换。

android + gradle 有没有这样的机制?理想情况下,不会在源树中创建或修改单个文件。

编辑 - 我所说的树外是这样的:

我的源文件夹看起来像:

/work/project/build.gradle
/work/project/src/...
/work/project/res/...       
Run Code Online (Sandbox Code Playgroud)

当我运行gradle build 时,我最终会得到新文件夹,例如:

/work/project/.gradle/...
/work/project/build/..
/work/project/res/...       
Run Code Online (Sandbox Code Playgroud)

我想使用 gradle 构建项目,以便我们的新文件夹和生成的文件位于项目外部的文件夹中,例如:

/work/build-project/.gradle/...
/work/build-project/build/..
/work/build-project/res/...       
Run Code Online (Sandbox Code Playgroud)

关于其背后的哲学,这是一个很好的发现:http : //voices.canonical.com/jussi.pakkanen/2013/04/16/why-you-should-think-using-separate-build-directories/

Phi*_*Lab 1

您必须添加到根项目的build.gradle文件中:

allprojects {
  buildDir = "/external/path/${rootProject.name}/${project.name}"
}
Run Code Online (Sandbox Code Playgroud)