Gradle 渐变指定子项目的设置目录路径
Gradle 渐变指定子项目的设置目录路径,gradle,multi-project,Gradle,Multi Project,在多项目构建中,我有一个模块,它本身由两个子项目组成。如果我只想选择构建顶层模块,但同时也要确保其中的两个子项目都已构建,那么我如何实现这一点 include 'moduleA', 'moduleB', 'moduleC' (root project settings.gradle) project(':moduleC').projectDir = new File('path to custom module that includes sub-projects) project(':modu
在多项目构建中,我有一个模块,它本身由两个子项目组成。如果我只想选择构建顶层模块,但同时也要确保其中的两个子项目都已构建,那么我如何实现这一点
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级别,而不是根级别)。
谢谢,Paddy从Gradle 2.2开始,仅支持单个
设置。每个版本都支持Gradle
。如果该文件包含include“moduleC:api”
和include“moduleC:server”
,那么从moduleC
的项目目录运行gradle build
也将构建api
和serverHi@Peter,如果我从根项目目录尝试它,gradlew:moduleC:build将做什么?它还会同时生成api和服务器吗?还是只有在我从moduleC的项目目录运行gradle时才会发生这种情况?不,它只会在moduleC
中运行build
任务(如果没有,则会出错)。当然,您总是可以声明自己的任务,例如dependsOn:moduleC:api:build“
和dependsOn:moduleC:server:build”
。它是否像任务['':moduleC:build'].dependsOn(':moduleC:api:build')?根据您的确切动机/需求,您可能会执行类似于task buildAll{dependsOn build,“:moduleC:api:build”,“:moduleC:server:build”}
在moduleC/build.gradle
中。我使用了一种技术来绕过这个限制: