Hello,

following situation:

I have like 20 projects which are libs of different level. They are
all built as jars. They are partially dependent on each other (not
circularly).
For example project A provides very basic utils. Project B is more
specialized and depends on A. Project C depends on A, project D on A
and C.

I have two requirements:

First: I want them to depend on a released version of each other, not
necessary last release, but preferred.
This work if I declare the dependency as RELEASE or a version number like 1.0.2

Second:
I want to be able to build automatically each night to check whether
the last svn committed changes of the projects break the dependent
projects.
This works if I declare dependencies as SNAPSHOT, like 1.0.2-SNAPSHOT.

The problem with SNAPSHOT is that If I release 1.0.1 of project B it
upgrades the dependency of A from 1.0.1-SNAPSHOT to 1.0.2 SNAPSHOT (if
I previously released an 1.0.1 of project A).
As a result I am not able to release 1.0.2 of project B until I have
released 1.0.2 of A, even I had no changes in A.

Therefore the question, how can I teach maven that project depend on
RELEASEd versions of each other for release process and dependency
management on the one side, and on svn snapshots for CI purposes on
the other?

The only thing I can come up with right now is to have two different
poms for each project, with different dependencies. But this sounds
like a mess to maintain :-(.

I have done this before with ant+ivy by simple declaring a file based
'local repository'. This local repository existed only in the context
of a job. I than had a hudson job that checked out all 20 projects and
published them one after each other into the local repository. If some
versions would not compile, the job would fail and send an alert. This
hasn't affected already released versions. Is something similar
possible with maven?

regards
Leon

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to