Yes I did make entries in my master parent for all the versions of
software that we use but it is ignoring that as well.
Scott
On Mar 1, 2007, at 9:36 PM, Wayne Fay wrote:
> Have you tried using <dependencyManagement/> node in your parent
pom
> to "lock down" the versions you will accept ie:
>
> <dependencyManagement>
> <dependencies>
> <dependency>
> <groupId>net.sf.saxon</groupId>
> <artifactId>saxon</artifactId>
> <version>[8.7]</version>
> </dependency>
> </dependencies>
> </dependencyManagement>
>
> Of course, this requires that you list all your dependencies
(even the
> transitive ones) in this node and update versions etc here, but at
> least it centralizes things a bit...
>
> Wayne
>
> On 3/1/07, Scott Ryan <[EMAIL PROTECTED]> wrote:
>> I am working with Maven on some fairly complex projects and I now
>> understand that the dependency resolution is done via a "nearness"
>> process rather than based on the highest compatible version. I
have
>> recently upgraded from Maven 2.04. to 2.0.5 which did not fix my
>> issue but did change the behavior a little. Here is my problem:
>>
>> I have a number of framework libraries I am using including
Spring,
>> Hibernate, etc. I have an artifact that uses Hibernate at the
latest
>> version which in turn uses Commons-Collections 3.1. In that same
>> project I use some new methods out of Commons-Collections 3.2 so I
>> have that referenced in my pom.xml as well. The issue comes
when i
>> try to use that artifact and another artifact that uses Hibernate.
>> Depending on the order that I include those dependencies I
sometimes
>> get 3.1 and sometimes 3.2. If I get 3.1 my code breaks at run
time.
>> Now this evening I included another artifact that is using a
>> framework that apparently used Commons-Collections 2.1 and now
my War
>> includes Commons-Collections 2.1 and that breaks everything. I
can
>> see the resolution of the libraries in the -X output of the mvn
>> command but no idea how to fix it or why it is happening. I
know I
>> can fix the issue by including every artifact that is used by
every
>> other artifact in my pom.xml at the version I want but that
seems to
>> defeat the whole purpose of transitive dependencies. There are
also
>> cases where a dependency may read 1.7) and 1.6 and I get null
>> pointers during my builds even though 1.7 should be upwardly
>> compatible with 1.6.
>>
>> So here are my questions:
>>
>> Why was the "nearness" process chosen and what does it buy me over
>> using the most current compatible version out of my entire
dependency
>> list?
>> How can I insure that I don't get my dependencies randomly
downgraded
>> so that I get runtime errors with no indication until I use the
>> application?
>> Is there a report or process I can use to locate these
downgrades so
>> I can deal with them during build time and not runtime?
>>
>> Am I missing something or doing something wrong that is causing
this
>> behavior?
>>
>> Thanks for all the support and a great open source offering. I
hope
>> you can educate me so I can deal with this issue and teach others.
>>
>>
>> Scott Ryan
>> CTO Soaring Eagle L.L.C.
>> Denver, Co. 80129
>> www.soaringeagleco.com
>> www.theryansplace.com
>> (303) 263-3044
>> [EMAIL PROTECTED]
>>
>>
>>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
Scott Ryan
CTO Soaring Eagle L.L.C.
Denver, Co. 80129
www.soaringeagleco.com
www.theryansplace.com
(303) 263-3044
[EMAIL PROTECTED]