+1 to that. We use Cruise to trigger builds based upon SCM changes (amongst other things).
However, I _have_ setup builds where it determined if a particular module has been built since it's last change. This was using Subversion, so excuse the svn commands ;-) - svn info the module directory, extract out the last changed revision - ivy findrevision that module, that revision into your repo - if it doesn't exist, build it. That said, I don't recommend going with this approach. In my experience, the gains of not just rebuilding everything outweigh the expected speed improvement. You start finding cases where X hasn't changed, but depends on Y. Y changes, and is no longer compatible with X. You get into the impact-zone approach of testing, which adds to the overhead of determining if you need to build, etc. My $0.02. ~Tim On Wed, Jan 20, 2010 at 6:33 AM, Gareth Western <gar...@garethwestern.com>wrote: > This sounds more like an issue for your build system rather than the > software. I think what you're looking for is a "Continuous > Integration" server such as Hudson, CruiseControl, or Bamboo. There > are loads of others, but those are the 3 I hear about most frequently. > > These typically monitor your SCM for changes and then invoke a build > mechanism (Ant files, Maven, custom schell scripts, etc.), and then > publish the resulting artifacts somewhere (upload to FTP, publish in > Ivy, etc). > > Hudson: http://hudson-ci.org/ > CruiseControl: http://cruisecontrol.sourceforge.net/ > Bamboo: http://www.atlassian.com/software/bamboo/ > > Is that what you meant? > > On Wed, Jan 20, 2010 at 2:17 PM, Timothy Aston <timothy.as...@ca.ibm.com> > wrote: > > > > > > I'm wondering if anyone can advise on techniques for having a module > build > > only if there are changes. i.e. if the modified dates on any files in a > > particular fileset (the source files) are later than the publication date > > of the latest version of the module. I have a feeling this may require > > ant-contrib, which is OK as our build is already using that for other > > reasons. > > > > > > -Tim >