如何使用多个build.gradle文件?

如何使用多个build.gradle文件?,build,intellij-idea,gradle,project,structure,Build,Intellij Idea,Gradle,Project,Structure,我的项目结构是: 另外,我希望用户使用规范目录中的一些构建脚本来配置构建,但也要使用主构建脚本来配置项目。使用-b选项可以指定与默认版本不同的另一个版本scrpt,但我希望也执行这个默认版本。我不想使用应用自:并添加所有脚本,因为用户必须决定他想要什么 那么,有没有一种方法可以告诉Gradle添加额外的构建脚本-命令行来配置额外的项目?如果需要,您可以这样做: apply from: "config/specifications/${project.spec}.gradle" 这将允许用户执

我的项目结构是:

另外,我希望用户使用规范目录中的一些构建脚本来配置构建,但也要使用主构建脚本来配置项目。使用-b选项可以指定与默认版本不同的另一个版本scrpt,但我希望也执行这个默认版本。我不想使用应用自:并添加所有脚本,因为用户必须决定他想要什么


那么,有没有一种方法可以告诉Gradle添加额外的构建脚本-命令行来配置额外的项目

如果需要,您可以这样做:

apply from: "config/specifications/${project.spec}.gradle"
这将允许用户执行以下操作:

./gradlew -P spec=example

有关从命令行设置项目属性的更多详细信息,请参阅。

为什么用户必须决定他想要什么?请给出一个具体的用例。例如,在oop.gradle中,用户希望使用java插件并指定sourceCompatibility 1.8,使用特定的质量检查插件,添加额外的任务,额外的属性,指定从何处获取源。但在example.gradle中,用户需要sourceCompatibility 1.4、添加任务等。在其他构建脚本中应用C,在另一个C++插件中。我知道其中一些配置可以作为参数传递,但希望帮助用户只编写类似于Oli Charlesworth所说的-Pspec=example的内容,而不配置任何其他内容。为什么用户每次运行构建时都必须传递这些信息?他不应该这样做。出于这个原因,这些配置在构建脚本文件中,但不能同时应用,因为如果我们假设oop和Example做相同的事情,但从何处获取源,额外属性的值,输出目录是不同的使用正确的scritp将方便用户只写10个字母的工作。我不相信这种哲学。那么,用户如何运行本地构建,而不必每次都传递复杂的命令行参数呢?不管怎样,如果这些是你的要求,就按照奥利的建议去做吧。