-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Wed, 11 Jan 2006, Giacomo Pati wrote:
Date: Wed, 11 Jan 2006 21:19:22 +0100 (CET)
From: Giacomo Pati <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: [M10N] cocoon-jcr
--[PinePGP]--------------------------------------------------[begin]--
On Wed, 11 Jan 2006, Daniel Fagerstrom wrote:
Date: Wed, 11 Jan 2006 16:48:10 +0100
From: Daniel Fagerstrom <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: [M10N] cocoon-jcr
Carsten Ziegeler wrote:
...
> (And it would be good if people would not forget about the licence file
> when they add jars)
>
>
With M2s transitive dependence handling it is harder to keep track of what
we
actually depend on. Is there some reporting plugin or switch, so that one
can
get a report of all dependencies of a block or a multi project POM?
Otherwise we risk to get an unwelcome suprise when we genrate a binary
release.
I was to write a mail about it but you raised it before.
We are at the same trap as Maven 1 multiproject concerning dependencies.
We will fall into it as well (maybe even faster because of transitive
deps).
BlockA depends on jarB-1.0 which depends on jarC-1.0
BlockD depends on jarE-1.0 which depends on jarC-2.0
BlockF depends on BlockA and depends on BlockD
Version 1.0 and 2.0 of jarC are incompatible wrt backward compatibility.
And voila we have the desaster. The above chain might look overseeable
but imagine the chain is 5 times deeper. You might exclude jarC-2.0 from
dependency resolution, after a possibly excessive debugging session
where you finally figured you have a version problem, and hope all still
runs well.
OSGI blocks may solve this (with classloader isolation) but ATM we don't
have it.
Anybody solved this in an elegant way
In a big multiproject Maven 1 project we solved this by an entity file
in the root directory where all dependant jar had entities for their
groupId, artifactId and version (strictly sorted by groupId and
artifactId) and each (sub) project.xml file included it and used those
entity to define their individual dependency. This way we prevented
version clashes easily and relatively early. This has worked fine (even
if not recommended by Maven itself. In another project it has hit us
hard when we used automated integration tests with Continuum which
wasn't able to locate the entity file anymore because of relative paths
in the project.xml.
- --
Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFDxW5OLNdJvZjjVZARAnB8AKDGx4MFW2/BX3oXdr+KPySYzQV0lQCfRl7n
B/CJ8ikMJjRF8RqQ1J9wXOo=
=bmDr
-----END PGP SIGNATURE-----