Gradle多模块:如果每个子模块的Gradle.build文件已更改。没有可用的任务
我正在使用Gradle多模块:如果每个子模块的Gradle.build文件已更改。没有可用的任务,gradle,build.gradle,Gradle,Build.gradle,我正在使用Gradle3.5,我有以下情况 我通过多个模块使用Spring框架。 考虑以下结构: root build.gradle child-01 build.gradle child-02 build.gradle child-03 build.gradle 直到这里一切都好 从上面观察每个.gradle文件都有相同的名称。它是build 通过gradle tasks命令,可以在控制台中列出每个子模块的build.gradle文件的所有我自己的任务。此外,如果使用
Gradle
3.5,我有以下情况
我通过多个模块使用Spring框架
。
考虑以下结构:
root
build.gradle
child-01
build.gradle
child-02
build.gradle
child-03
build.gradle
直到这里一切都好
从上面观察每个.gradle
文件都有相同的名称。它是build
通过gradle tasks
命令,可以在控制台中列出每个子模块的build.gradle
文件的所有我自己的任务。此外,如果使用gradle project
命令,我可以看到列出的每个项目及其各自的描述
在使用Jenkins
时,我可以从每个子模块调用任何build.gradle
文件中的任何任务,所有这些都可以正常工作
我做了以下变化:
root
build.gradle
child-01
child-01.gradle
child-02
child-02.gradle
child-03
child-03.gradle
对于每个子模块,每个build.gradle
文件已分别重命名为child-0#.gradle
现在,gradle tasks
命令不打印我自己的任务,Jenkins
由于任务不可用而失败。gradle项目
命令打印所有子模块,但不显示说明
解决方案是什么?您可以通过在设置.gradle文件中为相应的属性buildFileName>设置一个值来更改生成文件名
project(':child-01').buildFileName = 'child-01.gradle'
有关更多详细信息,请检查此链接。您可以通过在设置.gradle文件中为相应的属性设置值来更改生成文件名
project(':child-01').buildFileName = 'child-01.gradle'
有关更多详细信息,请检查此链接只要每个子项目的生成文件名与子项目名匹配,您就可以使用以下内容更新您的
设置.gradle
文件:
rootProject.children.each {
it.buildFileName = "${it.name}.gradle"
}
这样,您就不需要显式地调用每个项目buildFileName
以下是关于该主题的讨论:
只要每个子项目的生成文件名与子项目名匹配,您就可以使用以下内容更新
设置.gradle
文件:
rootProject.children.each {
it.buildFileName = "${it.name}.gradle"
}
这样,您就不需要显式地调用每个项目buildFileName
以下是关于该主题的讨论: