Thanks very much Adam. I chose the second option and its working great.
On 27 February 2011 23:21, Adam Murdoch <[email protected]> wrote: > > On 28/02/2011, at 9:23 AM, Kevin Stembridge wrote: > > Hi all, > > I'm trying to convert my multi-project Ant build to Gradle. I have a flat > project structure, every subproject is a sibling of the master build > project. > > i.e. > > - flight-build (this is the master) > - flight-common > - flight-dao > - flight-service > > When I run a build from the master, it correctly builds the subprojects. > When I run a build from a subproject directory, it fails with the following > error: > > Cause: Could not find method compile() for arguments > [com.mahanaroad:mahana-i18n:1.0] on root project 'flight-common'. > > If I rearrange to a hierarchical build, it works fine. > > My settings.gradle file in the master directory looks like this: > > > includeFlat 'flight-common', 'flight-dao', etc. > > > Is there a way to configure a flat multi-project build to allow building of > subprojects or is this a missing feature? > > > Both. Here are some options you have for keeping your structure: > > * Put the settings.gradle in the root directory: > > rootProject.name = 'flight-build' > rootProject.projectDir = new File(settingsDir, 'flight-build') > > include 'flight-common' > include 'flight-dao' > > * Put the settings.gradle in a directory called 'master', as a sibling of > the project directories: > > rootProject.name = 'flight-build' > rootProject.projectDir = new File(settingsDir, '../flight-build') > > includeFlat 'flight-common' > includeFlat 'flight-dao' > > As far as missing feature goes, Gradle should probably look for a > settings.gradle in any sibling of the current directory, not just in one > called 'master'. > > > -- > Adam Murdoch > Gradle Developer > http://www.gradle.org > CTO, Gradleware Inc. - Gradle Training, Support, Consulting > http://www.gradleware.com > >
