On 17/03/2011, at 9:27 PM, Gerwin Jansen wrote:

> Hi experts,
> 
> I work for an enterprise company and our build scripts (Ant, batch,
> shell) are trouble. I'm asked to investigate the problems and come up
> with a solution direction.
> I started playing with Maven till somebody told me to have a look at
> Gradle. And I'm actually getting exited about this tool. But I have a
> specific use case, and I'm wondering whether Gradle supports this.
> 
> Our SVN branch is huge (3.62GB / 170984 files) and the main structure
> looks like this:
> root
>   components
>       basicutil
>       eventservice
>       bpmengine
>       ...70 more...
>   ..misc...
> 
> Every team is responsible for a few components. A developer does a
> partial checkout of his component (a full checkout is not workable).
> 
> Now we have 2 scenario's
> 1) The main build server does a full checkout and full build every night.
> 2) The developer wants to build and test only his component before he
> commits a change.
> A requirement is to share build scripts
> (conventions/declarations/etc.) as much as possible.
> 
> Is scenario 2 supported by Gradle?

It is, but it's quite awkward and requires some coding. This is something we 
want to better support before we release Gradle 1.0.

At the moment, you'd need some logic in your settings.gradle which decides 
which projects to include in the build. It could do this based on whether the 
project directories are checked out or not. You'd also need some logic which 
converts project dependencies into external dependencies for those projects 
which are not included in the build.


> What I understood so far is that
> Gradle is looking in parent-parent folders for common/parent/shared
> build scripts, which is not available on a developer machine (due to
> partial checkout).

There're a few options here. One is to move the common logic into plugins 
and/or scripts which are published to a repository, which the build scripts can 
use. Another option is to move the common logic into a separate directory which 
the developers must also check out. I guess you could use svn externals, too.


--
Adam Murdoch
Gradle Developer
http://www.gradle.org
Co-Founder and VP of Engineering, Gradleware Inc. - Gradle Training, Support, 
Consulting
http://www.gradleware.com

Reply via email to