在多项目构建中,我有一个模块,该模块本身由两个子项目组成。如果我只想选择构建顶层模块,又要确保其中的两个子项目也都被构建,该如何实现呢?

include 'moduleA', 'moduleB', 'moduleC' (root project settings.gradle)
project(':moduleC').projectDir = new File('path to custom module that includes sub-projects)
project(':moduleC').settingsDir = ?? (gradle fails because there is no settingsDir path)

但是moduleC本身具有settings.gradle
include 'api'
include 'server'

现在,我希望在指定gradlew :moduleC:build时都触发这两者,但是相反,它只是构建moduleC根项目。有办法吗?这个用例对我而言似乎确实有效(即,对于模块化而言,您希望将子项目的包含范围保持在moduleC的级别,而不是根级别)。

谢谢,
稻田

最佳答案

从Gradle 2.2开始,每个版本仅支持一个settings.gradle。如果该文件包含include "moduleC:api"include "moduleC:server",则从gradle build的项目目录中运行moduleC还将生成apiserver

10-02 08:02