Maven Resolver Test

What do I want to do?

  • Given a POM file on the local filesystem

  • I want to programmatically obtain the effective POM of that POM file. Specifically I want to do the following:

    • Resolve the POMs dependencies
    • Ensure that all parent POMs are processed
    • Obtain the list of dependencies of the fully resolved POM
    • And so on...
  • I don't need to obtain transitive dependencies.

What works?

I'm using Maven Resolver Provider which works. However I have to use a package private class org.apache.maven.repository.internal.DefaultModelResolver

There's an example program which does the following:

  • Downloads the latest spring boot POM from Maven Central.
  • Prints out it's direct dependencies (with parent deps included)

You can run the the program with: mvn exec:java -Dexec.mainClass="com.sahilm.maven_resolver_test.Test"

What I need help with?

  • I need help with understanding why I have to use a package private class to get stuff to work.
  • Is there another way to get the information I need?