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
[2] https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html
[3] 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
Sai Vidya Institute of Technology, India



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to