build.gradle多模型:如果每个子模块更改了gradle.build文件.没有任务可用



我正在使用Gradle 3.5,我有以下情况。

我与Spring Framework通过多模块一起工作。考虑以下结构:

root
   build.gradle
child-01
   build.gradle
child-02
   build.gradle
child-03
   build.gradle

直到这里一切都可以。

从上方观察每个.gradle文件具有相同的名称。它是build

通过gradle tasks命令,可以在控制台中使用每个子模块的每个build.gradle文件中的所有任务中的所有任务列表。此外,如果使用gradle project命令,我可以看到每个项目都列出了其各自的 description

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 project命令打印所有子模块,但没有描述。

什么是解决方案?

,只要每个子标记的构建文件名与subproject名称匹配,您就可以使用以下方式更新settings.gradle文件。

rootProject.children.each {
    it.buildFileName = "${it.name}.gradle"
}

这样,您就不需要召集每个项目buildfilename explicity。

这是关于该主题的讨论:

https://discuss.gradle.org/t/child-projects-with-different-names-than-than-than-build-gradle/4636

您可以通过设置适当属性的值 buildfilename in settings.gradle file。

project(':child-01').buildFileName = 'child-01.gradle'

有关更多详细信息,请检查此链接修改项目树的元素

最新更新