Brian --

Thanks for this. I did run the combo 'mvn compile dependency:tree' as you
mention below, and it works. What I'm taking away from this is that
dependency:tree will work if it's part of the *same* mvn invocation as something
like compile, which forces maven to do the resolution of the local workspace.
Doing 'mvn compile' and then 'mvn dependency:tree' thus does not work.

As a new user, this was (and still is) a bit bizarre, but I'm happy to know how
to get it to work. 

Thanks!

jon

On Fri, Nov 20, 2009 at 03:54:11PM -0500, Brian Fox wrote:
> This isn't exactly true. First, lets take a look at the stack trace:
> 
> ----------
> 1 required artifact is missing.
> 
> for artifact:
>   com.example:mod_b:jar:1.0
> 
> from the specified remote repositories:
>   mynexus (http://192.168.101.21:8081/nexus/content/groups/public)
> 
> 
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTra
> nsitively(DefaultArtifactResolver.java:360)
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTra
> nsitively(DefaultArtifactResolver.java:304)
>         at 
> org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDepende
> ncies(DefaultPluginManager.java:1499)
>         at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
> nManager.java:442)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
> ultLifecycleExecutor.java:694)
>         ... 17 more
> 
> 
> Notice this is all core code. It's trying to resolve the dependencies
> prior to invoking the plugin. As I mentioned earlier in the thread,
> the plugin sets @requiresDependencyResolution test which tells Maven
> to resolve the test scope (which means everything) before invoking the
> plugin.
> 
> If you only run "mvn dependency:tree" there are no references to the
> other projects in the reactor for Maven to find and use. Try running
> "mvn compile dependency:tree: and you'll see that it does in fact
> work. This is just a side effect of how maven 2.x does the resolution.
> 
> Could we rewrite the dependency tree goal to completely work around
> this? Probably, but it would mean duplicating tons of core logic to
> make the resolution work in all cases and running tree on a not-yet
> compiled or installed project is an edge case imo.
> 
> 
> 2009/11/19 Jamie Whitehouse <jamie.whiteho...@genesyslab.com>:
> > Many of the dependency plugin goals are reactor aware, but dependency:tree 
> > isn't.  I'm not too sure why, but you could search the issue tracker and if 
> > there's no issue for this file one.
> >
> > -----Original Message-----
> > From: Jonathan Gold [mailto:jgold...@gmail.com]
> > Sent: Thursday, November 19, 2009 3:00 PM
> > To: users@maven.apache.org
> > Subject: Re: Why would 'mvn dependencies:tree' fail while 'mvn compile' 
> > works?
> >
> > Jamie --
> >
> > Thanks for trying it out, and for the explanation. This makes sense in 
> > terms of why things are happening, so that's nice.
> >
> > I'm not familiar with the dependency plugin developers (are you one?), and 
> > wonder if having the dependency plugin be reactor-aware is something they 
> > would consider? Perhaps its an old tired discussion and the decision to 
> > build that plugin the way it is is said and done.
> >
> > Thanks for your help!
> >
> > jon
> >
> > On Thu, Nov 19, 2009 at 11:43:33AM -0800, Jamie Whitehouse wrote:
> >> What maven commands did you issue to test this?
> >>
> >> I used the attached project and here's the results.
> >> 1) extract zip
> >> 2) mvn dependency:tree
> >>   failed due to dependency resolution
> >> 3) mvn clean install
> >> 4) mvn dependency:tree
> >>   see the tree output
> >>
> >> I think you're misunderstanding how the local maven repo is used and the 
> >> affect reactor builds and plugins that are reactor aware vs not.  AFAIK 
> >> the dependency:tree goal is not reactor aware.  It needs to resolve 
> >> artifacts from the local repo (or download from remote repos if not 
> >> present locally).  Since you haven't mvn installed these into your local 
> >> repo the tree goal states that the artifact is missing.
> >>
> >> The compile goal is reactor aware, and hence if you invoke mvn compile it 
> >> determines the correct order in your multi-module build in order for mod_b 
> >> to resolve the reference to mod_a.  To test this reverse the order of the 
> >> module definitions in the root pom and see that the reactor summary builds 
> >> mod_a first despite the modules list having mod_b first.
> >>
> >> If you want to simulate what dependency:tree does using the compile goal, 
> >> just try to compile mod_b on it's own, in it's own sub module (e.g. 
> >> c:\maven-repro1\mod_b> mvn compile ), you'll get the same error about not 
> >> being able to resolve dependencies.
> >>
> >> Hope that helps.
> >> Jamie.
> >>
> >> -----Original Message-----
> >> From: Jonathan Gold [mailto:jgold...@gmail.com]
> >> Sent: Thursday, November 19, 2009 12:52 PM
> >> To: users@maven.apache.org
> >> Subject: Re: Why would 'mvn dependencies:tree' fail while 'mvn compile' 
> >> works?
> >>
> >> Brian --
> >>
> >> Thanks for your help so far. I did put together a very small sample 
> >> project that will repro what I'm seeing (attached as a zip). Just run 'mvn 
> >> dependency:tree'
> >> in the root of the project and see if you get the same error (mod_a is not 
> >> found, required by mod_b). It does compile fine.
> >>
> >> I'll be interested to see if you get the same results, or have some 
> >> insights.
> >> It's totally likely that I'm not setting my poms up correctly.
> >>
> >> Thanks for any help you can give!
> >>
> >> jon
> >>
> >> On Wed, Nov 18, 2009 at 05:53:34PM -0500, Brian Fox wrote:
> >> > This is not related. The dependency plugin has some issues resolving
> >> > things from the reactor and ranges in the following goals only:
> >> > copy
> >> > unpack
> >> > go-offline
> >> > resolve-plugins
> >> >
> >> >
> >> > All the other goals set @requiresDependencyResolution test which
> >> > will cause Maven to resolve all dependencies prior to the plugin running.
> >> > So if you're seeing some error, it's happening in the core. Provide
> >> > a sample project and/or some debug output and we might be able to
> >> > tell what the problem is.
> >> >
> >> >
> >> > On Wed, Nov 18, 2009 at 12:59 PM, Stevo Slavić <ssla...@gmail.com> wrote:
> >> > > Likely because dependency plugin has bugs, and I'm suspecting that
> >> > > your issue is similar/related to this
> >> > > <http://jira.codehaus.org/browse/MDEP-204>one already reported.
> >> > >
> >> > > But it's odd that it doesn't fail for you at module mod_c, as
> >> > > build reactor should have ordered mod_c to be built/processed
> >> > > before mod_d. Just guessing, maybe this mojo doesn't use maven
> >> > > reactor at all, and probably mod_c is ordered in list of modules in 
> >> > > your parent module after mod_d.
> >> > >
> >> > > Regards,
> >> > > Stevo.
> >> > >
> >> > > On Wed, Nov 18, 2009 at 6:37 PM, Jonathan Gold <jgold...@gmail.com> 
> >> > > wrote:
> >> > >
> >> > >> Hi --
> >> > >>
> >> > >> I'm trying to track down some other depdendency issues in my
> >> > >> project using dependencies:tree, but am getting errors that a module 
> >> > >> isn't found.
> >> > >>
> >> > >> I have my project set up with a parent pom and a list of modules,
> >> > >> each referencing the parent, etc. Essentially, I have this:
> >> > >>
> >> > >>    pom.xml # parent, references mods a, b, c, d in <modules>
> >> > >>    mod_a/pom.xml # module, no module dependencies
> >> > >>    mod_b/pom.xml # module, no module dependencies
> >> > >>    mod_c/pom.xml # module, declared dependency on mod_b
> >> > >>    mod_d/pom.xml # module, declared depdenency on mod_a, mod_b,
> >> > >> mod_c
> >> > >>
> >> > >> From the root workspace directory, I can run things like 'compile'
> >> > >> or 'jar:jar'
> >> > >> just fine, but for some reason 'dependencies:tree' is failing
> >> > >> when it gets to mod_d, complaining that it can't find mod_c.
> >> > >>
> >> > >> Any ideas what I'm doing wrong?
> >> > >>
> >> > >> jon
> >> > >>
> >> > >> -----------------------------------------------------------------
> >> > >> --
> >> > >> -- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> >> > >> For additional commands, e-mail: users-h...@maven.apache.org
> >> > >>
> >> > >>
> >> > >
> >> >
> >> > --------------------------------------------------------------------
> >> > - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> >> > For additional commands, e-mail: users-h...@maven.apache.org
> >>
> >>
> >> ----------------------------------------------------------------------
> >> ---------------------------------------------
> >> CONFIDENTIALITY NOTICE: This e-mail and any files attached may contain 
> >> confidential and proprietary information of Alcatel-Lucent and/or its 
> >> affiliated entities. Access by the intended recipient only is authorized. 
> >> Any liability arising from any party acting, or refraining from acting, on 
> >> any information contained in this e-mail is hereby excluded. If you are 
> >> not the intended recipient, please notify the sender immediately, destroy 
> >> the original transmission and its attachments and do not disclose the 
> >> contents to any other person, use it for any purpose, or store or copy the 
> >> information in any medium. Copyright in this e-mail and any attachments 
> >> belongs to Alcatel-Lucent and/or its affiliated entities.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> >> For additional commands, e-mail: users-h...@maven.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > For additional commands, e-mail: users-h...@maven.apache.org
> >
> >
> >
> > -------------------------------------------------------------------------------------------------------------------
> > CONFIDENTIALITY NOTICE: This e-mail and any files attached may contain 
> > confidential and proprietary information of Alcatel-Lucent and/or its 
> > affiliated entities. Access by the intended recipient only is authorized. 
> > Any liability arising from any party acting, or refraining from acting, on 
> > any information contained in this e-mail is hereby excluded. If you are not 
> > the intended recipient, please notify the sender immediately, destroy the 
> > original transmission and its attachments and do not disclose the contents 
> > to any other person, use it for any purpose, or store or copy the 
> > information in any medium. Copyright in this e-mail and any attachments 
> > belongs to Alcatel-Lucent and/or its affiliated entities.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > For additional commands, e-mail: users-h...@maven.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to