Hi John, Thanks to try to fix this. I have this issue but in my case I don't define any repository in my projects. I override the central definition in my user's settings to use our corporate repo. This method always works to build projects except when I'm using imports : Maven tries to download dependencies from the real central. Why my settings doesn't override it ? To fix I had to use a proxy * to always use the corporate repo. Personnaly I don't like that because I had to merge in the same group, releases and snapshots. I have no idea to fix it but : - I don't want to define my corporate repository in all poms - It's really annoying today to have only this case which doesn't work when we override the central repo definition.
Arnaud On Thu, Apr 23, 2009 at 7:50 PM, John Casey <jdca...@commonjava.org> wrote: > Hi, > > I've been looking into MNG-3553 and the relevant code, and I'm starting to > believe that we cannot solve the problem discussed in the issue without > breaking other functionality. > > The basic problem stated in the issue is: > > Given: > > project A > - packaging == 'pom' > - has dependencies on X,Y,Z > - these are resolved from a custom repository, R > > project B > - has project A listed in dependencyManagement with > * scope == 'import' > * type == 'pom' > > - defines dependencies on X,Y,Z > * does not define versions for these > * USES VERSIONS FROM IMPORTED depMan project A. > > - does NOT define custom repository R > > project C > - has a dependency on project B > > > When building project C, it cannot resolve X,Y,Z. The root of the problem > is that when dependencies of project A are imported into depMan for project > B, the corresponding repository R is NOT imported into project B. When > project B's dependencies are resolved, Maven cannot resolve the versions of > X,Y,Z that are used from B's depMan, since repository R is not available. If > repository R is added to project B to compensate, everything works. > > It might be tempting to say, "Well, then just add in the repositories from > the imported POM." The problem here is that this could change the way > snapshot versions are resolved for dependencies that have nothing to do with > the imported POM/dependencyManagement configuration. By simply adding these > repositories from the imported POM, we would be changing the way the rest of > the build process works, and possibly destabilizing it in completely > counter-intuitive ways. If a snapshot version broke the build and the user > figured out which specific version was being used, he might find that it's > next-to impossible to figure out where that version is coming from. It could > also have an effect on the way plugins and plugin dependencies are resolved, > since transitive dependency resolution for plugins often makes use of the > repositories section in the 2+ level stage of resolution. > > Because of the above, my strong inclination is to say that propagating > these repository definitions must remain a manual task (the current > workaround detailed in the comments for MNG-3553), to avoid reducing the > transparency of the dependency-resolution process. I'd really like to hear > what others think on this issue, though...other ways we might approach the > issue, and potentially find a solution that won't make Maven seem to be > _more_ of a magical process. > > Thoughts? > > Thanks, > > -john > > --- > John Casey > Developer and PMC Member, Apache Maven (http://maven.apache.org) > Member, Apache Software Foundation > Blog: http://www.ejlife.net/blogs/buildchimp > > "What we have to learn to do, we learn by doing." > -Aristotle > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > > -- Arnaud