cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <Ralph.Go...@dslextreme.com>
Subject Re: building trunk.
Date Wed, 11 Apr 2007 05:22:33 GMT


Jorg Heymans wrote:
> Reinhard Poetz wrote:
>
>> I'm asking because I don't understand who the customers of creating a 
>> <dependencyMangement> section in Cocoon are? Is it the Cocoon project 
>> alone or also all projects that use Cocoon?
>
> AFAICT dependencyManagement does not come into play unless you're 
> inheriting from the pom that declares it, so it would be only useful 
> to us internally.
No.  If you reference a transitive dependency than the 
dependencyManagement of its parent will be used to provide the version. 
However, if the project being built defines the dependency, either in 
its pom or in a parent's dependencyManagement, than that will be used 
instead.
>
>>
>> In the first case I doubt that there is much value in doing all this 
>> work as long as the build runs through, isn't it?
>
> Agreed.
Disagree. See my reply to Reinhard.
>
>> Or is the idea  that the user looks into our released parent pom and 
>> copies our <dependencyMangement> section into his own project or even 
>> inherits from our root pom?
>
> I don't think any of these options is desired. Our main goal should be 
> to keep our own dependency tree as clean as possible, ie <exclude> 
> transitive dependencies in 3rd party libs that are clearly 
> wrong/optional etc.
Have you looked at the dependency analysis report? It is a mess.
>
> In any case, why wouldn't maven apply proper dependency resolution and 
> selection when presented with multiple versions of the same artifact ?
Because it doesn't. See below and go look at MNG-1577.
>
> Example: say i have a webapp pom that includes
> - cocoon-core (which has CL 1.1)
> - cocoon-thread-impl (which has CL 1.0.4)
>
> then maven will just select CL 1.1 for inclusion, not both. If i 
> however define in my webapp pom CL 1.0.4 then it will select only that.
Wrong. Maven will choose the "nearest" which might be 1.1 or 1.0.4. The 
bottom line is you can never be sure.  dependencyManagement allows you 
to define what versions should be used wherever they appear in the project.

Ralph

Mime
View raw message