. . We are migrating to Rational Team Concert (RTC) and want to leverage its 'component' definitions. Components used in a stream result in a local scm workspace which is flat and its physical root is not in scm, like this:
|- workspace-name
| component1
| component2
<empty>
Files in source code only exist in component folders, workspace-name
is just a filesystem parent so unless I copied code into there at build time, it is empty of build files or code.
I found numerous good questions and answers on, e.g., flat project layouts, generic component layout, and an excellent primer on how Gradle works re: logical vs physical layouts. These still didn't quite address my confusion.
What I'm trying to do is this:
|- workspace-name
| component1
| component2
| buildSrc
I have this in buildSrc/settings.gradle
:
includeFlat '../component1/compa','../component2'
Right off the bat it gives me error that my custom task (defined in buildSrc\src\main\groovy\CustomTask.groovy
) does not exist (could not find property 'CustomTask' on project ':component1/compa'
).
I believe that's because buildSrc
should be in the projectroot directory itself (as implied by gradle docs) , e.g.:
|- workspace-name
| component1
| component2
| buildSrc
Which leads me to think that maybe I need a dummy component which becomes both the logical parent as well as the buildSrc parent.
My question is, if I have no physical root, what's the "best" place to put my settings.gradle
file? Each component will need code from the custom tasks to build so I'm also looking for the best place for that (if not in the dummy component). Thank you!
Andy