Gradle多项目构建:如何指定不同的构建文件?

时间:2018-02-21 17:01:24

标签: gradle multi-project build-script

Gradle多项目构建:如何设置不同的构建文件? e.g。

/foo/bar/build-hello.gradle
/foo/bar/build-world.gradle

settings.gradle

include 'hello'
project(':hello').projectDir = new File('/foo/bar')
project(':hello').buildFile = new File('/foo/bar/build-hello.gradle')

include 'world'
project(':world').projectDir = new File('/foo/bar')
project(':world').buildFile = new File('/foo/bar/build-world.gradle')

错误:无法设置readOnly属性buildFile。

如何指定默认build.gradle以外的其他构建文件?

编辑:

https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:projectDir

File projectDir (read-only)
The directory containing the project build file.

projectDir也是readOnly。但设置其值没有错误。为什么呢?

1 个答案:

答案 0 :(得分:0)

settings.gradle文件在Settings对象上运行,project()方法返回ProjectDescriptor个实例,因为此时{I}}实例未创建Project个实例。 Gradle构建。

buildFile个实例的只读ProjectDescriptor属性是从两个可写属性projectDirbuildFileName创建的:

include 'hello'
project(':hello').projectDir = new File('/foo/bar')
project(':hello').buildFileName = 'build-hello.gradle'

include 'world'
project(':world').projectDir = new File('/foo/bar')
project(':world').buildFileName = 'build-world.gradle'