。 。我们正在迁移到 Rational Team Concert (RTC),并希望利用它的“组件”定义。流中使用的组件会产生一个平坦的本地 scm 工作空间,并且其物理根不在 scm 中,如下所示:
|- workspace-name
| component1
| component2
<empty>
源代码中的文件只存在于组件文件夹中,workspace-name
只是一个文件系统父级,因此除非我在构建时将代码复制到其中,否则它是空的构建文件或代码。
我发现了很多很好的问题和答案,例如平面项目布局 https://stackoverflow.com/questions/6995390/gradle-how-to-configure-multiproject-setup-with-side-by-side-projects, 通用组件布局 https://stackoverflow.com/questions/17083447/gradle-flat-project-with-multiple-jars-in-one-project, 和优秀的底漆 https://stackoverflow.com/questions/14729072/having-difficulty-setting-up-gradle-multiproject-build-for-existing-repository-l关于 Gradle 如何工作:逻辑布局与物理布局。这些仍然没有完全解决我的困惑。
我是什么trying要做的是:
|- 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
应该in项目根目录本身(如gradle 文档 http://www.gradle.org/docs/current/userguide/organizing_build_logic.html#sec:build_sources) ,例如:
|- workspace-name
| component1
| component2
| buildSrc
这让我想到也许我需要一个虚拟组件,它既成为逻辑父组件又成为 buildSrc 父组件。
我的问题是,如果我没有物理根,那么放置我的“最佳”位置是什么?settings.gradle
文件?每个组件都需要来自自定义任务的代码来构建,因此我也在寻找最佳位置(如果不在虚拟组件中)。谢谢你!
Andy