There's also good old 'mvn dependency:tree'

Gary

On Thu, Jun 18, 2026, 15:52 Maarten Mulders <[email protected]> wrote:

> Hi Hitesh,
>
> Unfortunately, I don't know much about Gradle's dependencyInsight task.
>
> Looking at what help:effective-pom does, I think it already answers the
> following questions:
>
> - Why is artifact X present on the classpath?
> - Which dependency path introduced it?
>
> And MPH-183 aims to add the answer to this question:
>
> - Did dependency management or a BOM influence the final selection?
>
> That leaves the following questions still unanswered:
>
> - Which version of the mediation rules was applied?
> - Were alternative versions considered and omitted?
>
> Personally, I think that could be useful information. I find it hard,
> however, to judge if this should go in the Maven Dependency Plugin (as
> you proposed) or in the Maven Help Plugin, as that's where other
> "explanation" of the (effective) POM is reported. **Maybe other
> committers have can share their thoughts on that?**
>
> I'm not sure about Mavens participation in past editions of GSoC. I do
> recall we had proposals earlier this year, but I'm not sure someone from
> the Maven community stepped up to mentor those candidates.
>
> Thanks,
>
>
> Maarten
>
> On 18/06/2026 08:58, Hitesh Sai wrote:
> > Hi Maarten,
> >
> > Thank you for the references.
> >
> > After reviewing dependency:tree and MPH-183 more closely, I think my
> > proposal may be solving a related but slightly different problem.
> >
> > MPH-183 focuses on improving provenance information in help:effective-
> > pom -Dverbose, particularly for dependencyManagement entries imported
> > through BOM chains.
> >
> > The goal I had in mind is closer to Gradle's dependencyInsight task.
> > Rather than answering "Where did this managed version come from?," it
> > would answer questions such as:
> >
> > - Why is artifact X present on the classpath?
> > - Which dependency path introduced it?
> > - Which version of the mediation rules was applied?
> > - Were alternative versions considered and omitted?
> > - Did dependency management or a BOM influence the final selection?
> >
> > For example, dependency:tree can already show paths to a dependency, but
> > it does not provide a focused explanation of why a particular version
> > was selected.
> >
> > Before investing more effort into the proposal, I would appreciate your
> > opinion on whether this distinction is meaningful from a Maven
> > perspective, or whether you feel the existing work around MPH-183 would
> > already address most of these use cases.
> >
> > I also had a more general question regarding Maven and GSoC. While
> > reviewing the recent GSoC idea lists, I noticed that I could not find
> > Maven-specific project ideas. Has Maven participated in GSoC in the
> > past, or is Maven typically not part of the program? I'm curious about
> > the history here, as I'd like to understand whether proposal ideas are
> > usually developed independently by contributors or if there is a
> > different process for identifying suitable GSoC projects within the
> > Maven community.
> >
> > Thanks again for the feedback and pointers.
> >
> > Best regards,
> > Hitesh Sai
> >
> > On Thu, 18 Jun 2026 at 12:05, hitesh sai <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Hi Maarten,
> >
> >     Thank you for the feedback and for taking the time to review the
> >     proposal.
> >
> >     I'll take a closer look at the existing `dependency:tree`
> >     functionality, especially with the includes parameter applied, as
> >     well as the older GitHub proposal you referenced. After reviewing
> >     both, I'll compare them against my idea and identify any gaps or
> >     differences that could justify a separate feature.
> >
> >     I appreciate the guidance and will follow up with a more detailed
> >     analysis.
> >
> >     Thanks again,
> >     Hitesh Sai
> >
> >     On Thu, 18 Jun 2026 at 11:56, Maarten Mulders <[email protected]
> >     <mailto:[email protected]>> wrote:
> >
> >         Hi Hitesh,
> >
> >         Great to hear you're interested in contributing to Apache Maven
> >         through
> >         GSoC!
> >
> >
> >         About your proposal: the output you suggest looks quite like
> >         that of
> >         dependency:tree [1], especially with the includes parameter
> >         applied.
> >         Could you please highlight where your proposal differs from
> >         existing
> >         functionality? Also, there is an existing (old, but still
> relevant)
> >         proposal on GitHub [3] that maybe relates to what you're trying
> to
> >         achieve. I'm not 100% sure, but it might be good to check that
> >         one, too.
> >
> >
> >         Please note that this reply does not promise I would be
> >         available as a
> >         mentoring committer. At this point, I'm trying to help you write
> a
> >         relevant proposal for GSoC.
> >
> >
> >         Good luck,
> >
> >
> >         Maarten
> >
> >
> >         [1]
> >         https://maven.apache.org/plugins/maven-dependency-plugin/
> >         usage.html#dependency.3Atree <https://maven.apache.org/plugins/
> >         maven-dependency-plugin/usage.html#dependency.3Atree>
> >         [2] https://maven.apache.org/plugins/maven-dependency-plugin/
> >         tree-mojo.html <https://maven.apache.org/plugins/maven-
> >         dependency-plugin/tree-mojo.html>
> >         [3] https://github.com/apache/maven-help-plugin/issues/303
> >         <https://github.com/apache/maven-help-plugin/issues/303>
> >
> >         On 18/06/2026 06:35, Hitesh Sai wrote:
> >          > Hi everyone,
> >          >
> >          > I'm Hitesh, a CS student planning to apply for GSoC 2027 with
> >         Apache Maven.
> >          > I wanted to share my proposal idea early and get community
> >         input before
> >          > writing the full application.
> >          >
> >          > The proposal: add a dependency:insight goal to the maven-
> >         dependency-plugin
> >          > that answers the question "Why is artifact X on my classpath?"
> >          >
> >          > Current situation:
> >          >    Users run `mvn dependency:tree` and manually scan hundreds
> >         of lines to
> >          > find a transitive dependency's origin. There is no direct
> >         command for this.
> >          >
> >          > Proposed solution:
> >          >    $ mvn dependency:insight -Dartifact=guava
> >          >
> >          >    guava:32.1-jre  (declared: 32.0, overridden by spring-
> >         boot-dependencies)
> >          >    └─ spring-context:6.1.2
> >          >       └─ spring-core:6.1.2
> >          >          └─ com.example:my-app (root)
> >          >
> >          > Implementation approach:
> >          >    - Hook into the existing DependencyCollector/
> >         DependencyNode graph,
> >          > already built during the resolve phase
> >          >    - Perform a reverse BFS from the target artifact node back
> >         to the root
> >          >    - Surface version mediation info from
> >         DefaultDependencyCollector when the
> >          > resolved version differs from the declared one
> >          >    - Output both text and, optionally, a machine-readable
> format
> >          >
> >          > Gradle's `dependencyInsight` task already solves this for
> >         Gradle users —
> >          > this proposal brings equivalent clarity to the Maven
> >         ecosystem. I am not
> >          > proposing to change any resolution logic, only to expose what
> >         Maven already
> >          > computes internally in a more accessible form.
> >          >
> >          > I checked the GSoC 2025 and 2026 idea lists and found no
> >         existing Maven
> >          > proposals, so I believe this is new ground.
> >          >
> >          > I'd appreciate:
> >          >    1. Feedback on the scope — too big, too small, or about
> >         right for 12
> >          > weeks?
> >          >    2. Whether a Maven committer would be willing to mentor
> this
> >          >    3. Any prior discussion or JIRA tickets I should be aware
> of
> >          >
> >          > Thank you for reading. Happy to answer questions or share a
> >         draft write-up.
> >          >
> >          > Best regards,
> >          > B.V. Hitesh Sai
> >          > https://github.com/Hiteshsai007 <
> https://github.com/Hiteshsai007>
> >          > Sai Vidya Institute of Technology, India
> >          >
> >
> >
> >
>  ---------------------------------------------------------------------
> >         To unsubscribe, e-mail: [email protected]
> >         <mailto:[email protected]>
> >         For additional commands, e-mail: [email protected]
> >         <mailto:[email protected]>
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to