Hi Karl Heinz, unfortunately, I need the full resolved pom.
Best regards, Sandra Parsick > Gesendet: Mittwoch, 09. August 2017 um 19:24 Uhr > Von: "Karl Heinz Marbaise" <khmarba...@gmx.de> > An: "Maven Users List" <users@maven.apache.org>, spars...@web.de > Betreff: Re: How is the best way to get an effective POM outside of a Maven > Plugin? > > Hi Sandra, > > first question: Do you need the full resolved pom (effective pom) or > would it be enough just to simply to parse the pom file which can simply > being done using MavenXpp3Reader this would deliver the XML as a Maven > Model class which can simply being used to extract information from the > maven model... > > Kind regards > Karl Heinz Marbaise > > On 09/08/17 13:00, spars...@web.de wrote: > > Hello, > > > > currently, I'm working on a small tool, that needs some information of a > > POM and its parent POM. I didn't want to parse them with a XML reader, so I > > found that the DefaultModelBuilder can build a complete effective POM for > > me. Based on a stackoverflow answer > > (https://stackoverflow.com/questions/27383357/how-do-i-instantiate-mavenresolver-for-modelbuilder-usage) > > I build following example: > > > > DefaultModelBuilderFactory factory = new DefaultModelBuilderFactory(); > > final DefaultModelBuilder defaultModelBuilder = factory.newInstance(); > > ModelBuildingRequest buildRequest = new DefaultModelBuildingRequest(); > > buildRequest.setPomFile(Paths.get("/path/to/a/pom.xml").toFile()) > > .setProcessPlugins(false) > > > > .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); > > final ModelBuildingResult modelBuildingResult = > > defaultModelBuilder.build(buildRequest); > > > > > > It works fine for simple POM (simple means a POM without a parent > > reference). But if I set a POM with a parent reference in > > buildRequest.setPomFile, I get following exception: > > > > Exception in thread "main" java.lang.IllegalArgumentException: no model > > resolver provided, cannot resolve parent POM groupId:artifactId:1 for POM > > groupId:artifactId:version (/path/to/a/pom.xml) > > at > > org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:890) > > at > > org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:750) > > at > > org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:309) > > at > > com.github.sparsick.maven.effecitve.pom.maven.model.builder.ApacheMavenModelBuilder.main(ApacheMavenModelBuilder.java:17) > > > > Another example on Stackoverflow > > (https://stackoverflow.com/questions/4838591/is-there-a-library-for-reading-maven2-3-pom-xml-files) > > mentions to use RepositoryModelResolver from Apache Archiva as an > > implementation ModelResolver. But I don't want to introduce a dependency to > > Apache Archiva in my tool. > > > > So my questions are, is the usage of DefaultModelBuilder the best way to > > get an effective POM of my project outside of a Maven Plugin? If so which > > implementation I should use for the ModelResolver? If not what is the best > > way to get the effective POM outside of a Maven Plugin. > > > > Thank you and best regards, > > > > Sandra Parsick > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > > For additional commands, e-mail: users-h...@maven.apache.org > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org