. . 我们正在迁移到 Rational Team Concert (RTC) 并希望利用它的“组件”定义。流中使用的组件会产生一个平坦的本地 scm 工作区,并且其物理根不在 scm 中,如下所示:
|- workspace-name
| component1
| component2
<empty>
源代码中的文件只存在于组件文件夹中,workspace-name
只是一个文件系统父级,所以除非我在构建时将代码复制到那里,否则它是空的构建文件或代码。
我发现了很多关于平面项目布局、通用组件布局以及Gradle 工作原理的优秀入门知识:逻辑布局与物理布局等方面的好问题和答案。这些仍然没有完全解决我的困惑。
我想要做的是:
|- workspace-name
| component1
| component2
| buildSrc
我有这个buildSrc/settings.gradle
:
includeFlat '../component1/compa','../component2'
马上,它给了我一个错误,即我的自定义任务(在 中定义buildSrc\src\main\groovy\CustomTask.groovy
)不存在(could not find property 'CustomTask' on project ':component1/compa'
)。
我相信那是因为buildSrc
应该在projectroot 目录本身中(正如gradle docs所暗示的那样),例如:
|- workspace-name
| component1
| component2
| buildSrc
这让我想到,也许我需要一个既成为逻辑父级又成为 buildSrc 父级的虚拟组件。
我的问题是,如果我没有物理根目录,那么放置settings.gradle
文件的“最佳”位置是什么?每个组件都需要来自自定义任务的代码来构建,所以我也在寻找最好的地方(如果不在虚拟组件中)。谢谢!
安迪