How many build plans do you have? If I understood correctly single plan for
all modules (perhaps on aggregate pom).
Even small change in one module rebuilds all modules :-(

Let's consider to define one build plan for each module. In addition define
dependencies between build plans to reflect dependencies between maven
modules (Bamboo discovers dependencies automatically).

For sure, it requires a lot of configuration on continuous server but it
works. Only changed module and all dependents will be built and deployed.

Marcin

On 7 May 2012 23:07, Curtis Rueden <ctrue...@wisc.edu> wrote:

> Hi Anders,
>
> Thanks for your reply.
>
>
> > I believe the common way to handle this is to schedule purging of old
> > snapshots in the repo manager. At least that's how I handle it in my
> > setups.
> >
>
> Indeed, our Nexus is set to purge old snapshots daily, deleting any that
> are more than 7 days old. This works just fine.
>
> This is very helpful since it effectively bounds the disk space requirement
> based on the number of builds that happen in a 7-day window.
>
> However, my concern is more regarding the fact that the snapshot binaries
> "cycle" all the time. That is, they are being continually replaced with new
> builds, which may in fact be based on identical source code, every time
> someone pushes to the Git repository. The unfortunate side effect is that
> all developers on the project generally have to redownload all submodule
> JARs once every 24 hours (whenever Maven snapshots are refreshed).
>
> Regards,
> Curtis
>
>
> On Mon, May 7, 2012 at 3:53 PM, Anders Hammar <and...@hammar.net> wrote:
>
> > I believe the common way to handle this is to schedule purging of old
> > snapshots in the repo manager. At least that's how I handle it in my
> > setups.
> >
> > /Anders
> >
> > On Mon, May 7, 2012 at 10:31 PM, Curtis Rueden <ctrue...@wisc.edu>
> wrote:
> > > Hi everyone,
> > >
> > > I have a question about snapshot deployment.
> > >
> > > I have a multi-module project with ~30 modules, all in a Git repository
> > on
> > > GitHub. Whenever someone pushes to the repository, a GitHub
> notification
> > > hook pings our Jenkins to do a rebuild, which includes a redeploy to
> our
> > > Nexus. This is all great.
> > >
> > > However, there is a lot of redundancy between snapshot JAR files.
> Often,
> > a
> > > commit will involve only one of the 30 submodules, but all 30 will
> > > ultimately be rebuilt and redeployed, resulting in a plethora of
> snapshot
> > > versions. At any point in time, there is nearly always a "new" version
> of
> > > any given submodule of the project.
> > >
> > > I was wondering about the best way to reduce this issue. It would be
> nice
> > > to only redeploy snapshots that have actually changed—or better, for
> > Maven
> > > (client-side) or Nexus (server-side) to detect identical snapshots and
> > not
> > > waste the space creating a superfluous new one. (Of course, for a
> variety
> > > of reasons, comparing binary hashes between the latest snapshot JAR and
> > the
> > > new snapshot candidate may not be enough—especially if the build
> process
> > or
> > > CI adds some build-specific information to the JAR. But that is not
> > really
> > > Maven's problem...)
> > >
> > > Alternately, we could do something on the CI side to only do the deploy
> > if
> > > the submodule is really known to have changed—probably involving git
> > > reflogs etc. But that road could quickly become fraught with peril...
> > >
> > > So my question is: is there a common Maven best practice to mitigate
> such
> > > redundancy? Or do most people simply live with the proliferation of
> > > snapshots that occurs when using a naive deployment scheme?
> > >
> > > Thanks,
> > > Curtis
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > For additional commands, e-mail: users-h...@maven.apache.org
> >
> >
>

Reply via email to