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

Reply via email to