[ 
http://jira.codehaus.org/browse/MNG-4457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paolo Compieta reopened MNG-4457:
---------------------------------


I agree with MNG-1577, but there are a few differences here, so i'm kindly 
asking more clarifications.

1) *no one* is using 1.3.0 in the build, but Maven resolves 1.3.0 -could we 
point this out during the build or better manage this case?
2) Maven chooses the *older* version (not a newer one) while B is declaring a 
*direct dep* with an *explicit,newer* version -could we could point this out 
with a short message? [also a short hint in the dep resolution phase would be 
ok: "some deps older than requested"]
3) why is A's-transitive-older-managed-dep winning over B's direct-dep? Is this 
right?

Regarding point 3), i could agree if there were (another) ModuleD with 
direct-dep inheriting version 1.3.0 from parent: in this case, resolving 1.3.0 
instead of 1.4.1 would be fair (see attached example).

> dependency:resolve decides to take older (incompatible) version for 
> transitive dep
> ----------------------------------------------------------------------------------
>
>                 Key: MNG-4457
>                 URL: http://jira.codehaus.org/browse/MNG-4457
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 2.2.1
>         Environment: WinXp
> Maven 2.0.9/2.2.1
>            Reporter: Paolo Compieta
>            Assignee: Brian Fox
>         Attachments: m2FairTransitiveDepResolve.zip, 
> m2WrongTransitiveDepResolve.zip
>
>
> I'll use modules Parent,ModuleA,ModuleB,ModuleEAR and dependency Commons-Net 
> to explain the case.
> Parent specifies commons-net/1.3.0 in dependencyManagement
> \- ModuleB declares commons-net/1.4.1 as dependency (overrides version), and 
> resolves correctly 1.4.1
> \- ModuleA declares ModuleB as dependency (obtaining transitive dep to 
> commons-net), and resolves *erroneously* 1.3.0
> \- ModuleC (ear) takes in 1.3.0 whilst no module is actually using or 
> declaring it
> I'd expect this case to resolve 1.4.1 or at least to fail the build, because 
> in this example B is the only one using commons-net (maybe exploiting 
> 1.4.1-only features), while the final build resolves 1.3.0 (see ModuleA or 
> ModuleC).
> I'm not 100% which is the best policy, but i've got problems (wrong jars, 
> different behaviours and runtime errors) with this kind silent 
> down-resolution of version.
> Regards,
> Paolo

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to