I've done this in the past by: - Verifying if the module I'm about to build already exists in the repo at the current version. - After resolving, verify if any of my dependencies have changed - If current version exists in repo, and no dependency change, then skip the module.
More details on the versioning -- we shoved the Subversion revision in as part of the version. Works OK for jars, but 'container' type artifacts (ears, wars) don't change as much directly -- but the consumed artifacts do. Including something beyond revision # is usually necessary. Build # is simple, if you manage them. On Mon, Dec 19, 2011 at 5:11 AM, Jefferson Magno Solfarello < jmagno...@gmail.com> wrote: > Hi guys, > > I am working on a multi-project build using Ant and Ivy. > > He have basically three types of projects: > * Java libraries, with .jar artifacts > * Web projects, with .war artifacts > * EAR projects, with .ear artifacts > > Some project depend on others. > > When a change is commited to our repository, we start a full build of the > projects. I am using the task <ivy:buildlist> to call the build of the > projects in appropriate order. On the <ivy:publish> I have > forcedeliver="true" and overwrite="true". > > Using this approach, everything is built again, right? > > Is there a way to build only the projects that changed and the projects > dependent of them? > > Or, how to determine if the contents of a Jar, War or Ear file is the same, > to avoid re-building it? > > Thanks for any suggestion > > Jefferson >