Perhaps the original question is wrongly put, IMHO? If you have a shared library it should only be included ONCE in the end product, right? And this inclusion should be of a specific version (to allow build re-production), right? So all users of the shared library should list it as "provided" and the dependency will say which version was used for that particular build (re-production, once again). The end product will have a single "runtime" dependency of the shared library with the actual version to be included/used/provided.
PROBLEM: Maven does not automatically dected version mis-matches with "provided" dependencies. I do not end up with a working solution, but re-stated the issue arrives at a different core problem (one I have recently posted on this very mailing list). /jonas -----Ursprungligt meddelande----- Från: Mark Hobson [mailto:[EMAIL PROTECTED] Skickat: den 31 oktober 2006 10:54 Till: Maven Users List Ämne: Re: Managing Release Jars I was intending to ask the exact same question since this is quite a laborious task for us. Our project hierarchy is highly component based, and as such, a bug fix release in a shared low-level component can sometimes require ten to twenty releases of dependent projects. The solutions I can see for this are: 1) Use dependency management. Problems: MNG-1577; essentially moves dependency information to top-level project, causing duplication across projects and room for error. 2) Up the version to the new point-release in a single component where the issue was relevant, then rely on MNG-612 to ultimately select the latest version. Problems: MNG-612 is far from being implemented. 3) Use version ranges. Problems: build irreproducibility. 4) Use version ranges, but add support to the release plugin to resolve ranges to hard versions at release time. Problems: can't think of any. 5) Add automated support for this process. Where would this end up - Archiva, release plugin, separate tool? I quite like the idea of (4), what do others think? Mark On 30/10/06, John Casey <[EMAIL PROTECTED]> wrote: > Unless your projects are released in lock-step, you probably want to update > the dependency version manually. While this is labor intensive, it also > guarantees that you know exactly what you're building. As you analyze and > test against newer versions of the dependency, you can manage that small > piece of dependency metadata manually without much difficulty. > > If you're releasing all of the projects as a single app with a single > version, you might use dependencyManagement from an application-level parent > POM. > > HTH, > > John > > On 10/30/06, Pin Ngee Koh <[EMAIL PROTECTED]> wrote: > > > > I have a jar, say X.jar, which is reference by numerous projects. > > Developers are changing and releasing various versions of X.jar for > > releases. > > What is the best way to manage the POM files of projects which depends on > > it. > > > > 1. Use version range? E.g [1.0,2.0) > > This option has potential of picking up unintended latest release of > > X.jar > > 2. Manually update reach project's POM file and up a minor version? > > This option is labor intensive and difficult to manage. Also, > > increasing a minor version in projects seems wrong and weird. > > > > What's a better way you would suggest? > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] **************************************************************************** This e-mail has been scanned for viruses by http://www.virus112.se **************************************************************************** **************************************************************************** Detta e-mail har blivit undersökt av http://www.virus112.se **************************************************************************** --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]