Hi guys,
I’ve been trying to find how to programmatically resolve dependencies from a
pom.xml file by using the Maven Resolver API
(https://github.com/apache/maven-resolver).
So far I’ve succeeded in resolving dependencies from an Artifact but I haven’t
found how to do by reading from a pom.xml file.
The closest I have founds is the following but it’s not working & it’s not
using the Resolver API (and thus the passed parameters):
private void getArtifactDependenciesFromPOMFile(List<RemoteRepository>
remoteRepositories, RepositorySystem repoSystem,
RepositorySystemSession session) throws Exception
{
DefaultModelBuildingRequest modelBuildingRequest = new
DefaultModelBuildingRequest()
.setPomFile(new File("./pom.xml”));
ModelBuilder modelBuilder = new DefaultModelBuilderFactory().newInstance();
ModelBuildingResult modelBuildingResult =
modelBuilder.build(modelBuildingRequest);
Model model = modelBuildingResult.getEffectiveModel();
}
It’s failing with:
java.lang.NullPointerException: request.modelResolver cannot be null (parent
POM org.xwiki.platform:xwiki-platform-test:10.6-SNAPSHOT and POM
org.xwiki.platform:xwiki-platform-test-war:[unknown-version]
(/Users/vmassol/dev/xwiki/xwiki-platform/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-war/./pom.xml))
at org.apache.commons.lang3.Validate.notNull(Validate.java:225)
at
org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:994)
I assume that’s because it needs some MavenResolver at:
DefaultModelBuildingRequest modelBuildingRequest = new
DefaultModelBuildingRequest()
.setPomFile(new File("./pom.xml”))
.setResolver(“… what to put here?…”)
Is there another approach?
Thanks
-Vincent
PS: I’ve tried using ShrinkWrap but it’s not working for me, see
https://massol.myxwiki.org/xwiki/bin/view/Blog/ResolveMavenArtifactsShrinkWrap
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]