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
>

Reply via email to