A new goal would be fine with me. When I looked into implementing it, I saw that the changes could be pretty significant, like you said. That's why I brought it up here before I start working on a patch.

Maybe it could be something like this to clarify between parent parent pom and dependent pom.

[INFO] org.apache.maven.plugins:maven-jar-plugin:maven-plugin:2.3-SNAPSHOT
[INFO] +- org.apache.maven:maven-project:jar:2.0.7:compile
[INFO] |  +- (org.apache.maven:maven:pom:2.0.7:compile - parent pom)
[INFO] |  |  +- (org.apache.maven:maven-parent:pom:5:compile - parent pom)

In answer to your last question. Both finding all parents poms that a project uses and where parents are in the tree is the goal.


Brian E. Fox wrote:
I personally find that tree very hard to understand. Again the scope of
dependency:tree is to show where the dependencies come from, not to show
the full inheritance of all of them. It sounds like what you want is a
new goal somewhere, either dependency or help to show the inheritance,
but I don't know how to represent that in an understandable way. The
tree below makes it look like maven-project lists a dependency on the
maven pom, which isn't true (it lists it as a parent). We can't assume
that all pom dependencies are implied parents, because some people
really do depend on poms (think import scope).

The code to get this information is highly divergent from the current
resolve and tree, which is another reason why it think it probably needs
to be a new goal. In order to uncover the parents involved, you must
manually walk the pom, following the parent.relativePath and/or
resolving them out of the repo. (I know cause I have to do this in the
enforcer requirePluginVersions rule...you can't get it from Maven).
Whereas the current resolve and tree goals simply call
project.getArtifacts() and then iterate through the list.

Is the goal to find where a parent is used, or to find out what parents
a project uses? (or both?)

-----Original Message-----
From: Paul Gier [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 3:11 PM
To: Maven Developers List
Subject: Re: Resolving parent poms in the dependency tree

Just as an example, if I run "mvn dependency:tree" on the maven jar
plugin, I currently see the dependency on maven-project.

[INFO]
org.apache.maven.plugins:maven-jar-plugin:maven-plugin:2.3-SNAPSHOT
[INFO] +- org.apache.maven:maven-project:jar:2.0.7:compile

I would like to also see the parents of maven-project something like
this:

[INFO]
org.apache.maven.plugins:maven-jar-plugin:maven-plugin:2.3-SNAPSHOT
[INFO] +- org.apache.maven:maven-project:jar:2.0.7:compile
[INFO] |  +- org.apache.maven:maven:pom:2.0.7:compile
[INFO] |  |  +- org.apache.maven:maven-parent:pom:5:compile
[INFO] |  |  |  +- org.apache:apache:pom:3:compile


Paul Gier wrote:
It shows the dependencies that are inherited, but it doesn't show the poms themselves. If I run a build and see that there is a pom project

being pulled in, either by watching the command line or by looking in the local repository, it's sometimes not obvious why that parent is being downloaded, i.e. which dependency is depending on that pom.

Couldn't the parent poms be shown in the tree as additional branches
of
each dependency?

Brian E. Fox wrote:
But the tree view is showing the dependency inheritance. Each one of
those dependencies may have one or more parent poms, I don't see what
this adds, nor how to show it any more as a tree.

-----Original Message-----
From: Paul Gier [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 2:44 PM
To: Maven Developers List
Subject: Re: Resolving parent poms in the dependency tree

I just want the parent poms to print in the output.  Both in the tree
view and in the list generated by resolve.

So you would include things like:
org.apache.maven.plugins:maven-plugins:pom:12-SNAPSHOT:compile

Brian E. Fox wrote:
Adding it to resolve doesn't actually do anything since it will
already
be resolved. Can you provide an example of what you expect the
output
to
look like?

-----Original Message-----
From: Paul Gier [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 2:31 PM
To: Maven Developers List
Subject: Re: Resolving parent poms in the dependency tree

If they are not dependencies of the project, then what are they?
They
do have some relation to the project because they are needed in
order to
build,
so I'm just wondering where they fit in. Would it be reasonable to add a parameter to the dependency plugin's resolve and tree goals to also include the
parent poms?

Brian E. Fox wrote:
Both of those goals require Maven to do the dependency resolution,
which
means the parent poms will already be resolved at that point.
Strictly
speaking, the parents are not dependencies of the projects as we
are
looking only at binary artifacts. Getting the parent poms is out of
the
scope of those goals IMO.

-----Original Message-----
From: Paul Gier [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 12:43 PM
To: Maven Developers List
Subject: Resolving parent poms in the dependency tree


I noticed that the dependency plugin currently does not include
parent
poms when generating the dependency tree (MDEP-167) or when calling
dependency:resolve. Is the exclusion of the parent poms by design
or
is this something
that
just hasn't been implemented yet? I would like to have a way to print out
all the dependencies of my project (including poms, plugins, etc.)
but
currently
I think the only way to do this is to start with a clean
repository,
and then
look at the contents after a build was run.

Long term, what is the best way to handle this?  I didn't see any
current way in the maven artifact resolution API to get a list of dependencies that
include parent poms.  Does it make sense to add something like
this?
Thanks!


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to