Parent pom or BOM not resolved using DefaultProjectBuildingRequest

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Parent pom or BOM not resolved using DefaultProjectBuildingRequest

Anthony Dahanne
Hello Maven devs,
I'm trying to programmatically ingest a pom.xml and start a Maven
dependency resolution on it.
For that end, I'm using DefaultProjectBuildingRequest and a ProjectBuilder.
I could successfully issue the request, but when trying against a pom that
relies on a parent or a BOM (spring boot pom for example), it seems like
the properties set in the poms (including dependencies poms) aren't
considered.

I have set up a Github project there to reproduce the issue:

Code:
https://github.com/anthonydahanne/maven-resolver/blob/master/src/main/java/net/dahanne/mavenresolver/MavenResolverApplication.java#L37

Error output :
https://github.com/anthonydahanne/maven-resolver/runs/1884304754?check_suite_focus=true
(not sure it's public though)

Pom I tried to resolve:
https://github.com/anthonydahanne/maven-resolver/blob/master/pom.xml

For convenience, I have copied the code, pom that I tried to resolve and
the error log at the end of this email

I am kindly asking for your help, in case I missed an option in request or
the session or.. both...
A debug session did not reveal much unfortunately...

Thanks in advance for your help!

Anthony




Code snippet:

ContainerConfiguration config = new DefaultContainerConfiguration();
  config.setAutoWiring(true);
  config.setClassPathScanning(PlexusConstants.SCANNING_INDEX);
  PlexusContainer plexusContainer = new DefaultPlexusContainer(config);
  ProjectBuilder projectBuilder = plexusContainer.lookup(ProjectBuilder.class);
  RepositorySystem repositorySystem =
plexusContainer.lookup(RepositorySystem.class);
  DefaultRepositorySystemSession session =
MavenRepositorySystemUtils.newSession();
  LocalRepository localRepository = new LocalRepository("target/.m2");
  session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session,
localRepository));

  DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest();
  request.setRepositorySession(session);
  request.setResolveDependencies(true);
ArtifactRepository centralRepository = new MavenArtifactRepository();
centralRepository.setUrl("https://repo.maven.apache.org/maven2/");
centralRepository.setLayout(new DefaultRepositoryLayout());
request.setRemoteRepositories(Collections.singletonList(centralRepository));

  ProjectBuildingResult result = projectBuilder.build(new
File("pom.xml"), request);

and here is the output:

Caused by: org.apache.maven.project.ProjectBuildingException:
Some problems were encountered while processing the POMs:
[ERROR] Invalid artifact repository: null @
[ERROR] Failed to determine Java version for profile jdk8 @
io.dropwizard.metrics:metrics-parent:4.1.17,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/io/dropwizard/metrics/metrics-parent/4.1.17/metrics-parent-4.1.17.pom,
line 160, column 22
[ERROR] Failed to determine Java version for profile doclint-java8-disable
@ org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 839, column 17
[ERROR] Failed to determine Java version for profile
compile-java8-release-flag @ org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 879, column 18
[ERROR] Failed to determine Java version for profile include-jdk-misc @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 910, column 22
[ERROR] Failed to determine Java version for profile java8-test @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 961, column 22
[ERROR] Failed to determine Java version for profile java9-mr-build @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 998, column 22
[ERROR] Failed to determine Java version for profile java9-test @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1047, column 22
[ERROR] Failed to determine Java version for profile java10-mr-build @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1087, column 22
[ERROR] Failed to determine Java version for profile java10-test @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1139, column 22
[ERROR] Failed to determine Java version for profile java11-mr-build @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1182, column 22
[ERROR] Failed to determine Java version for profile java11-test @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1237, column 22
[ERROR] Failed to determine Java version for profile java12-mr-build @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1283, column 22
[ERROR] Failed to determine Java version for profile java12-test @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1341, column 22
[ERROR] Failed to determine Java version for profile java13-mr-build @
org.jboss:jboss-parent:36,
/Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
line 1390, column 22


And this is the pom I tried to resolve:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.4.2</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>net.dahanne</groupId>
   <artifactId>maven-resolver</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>maven-resolver</name>
   <description>Demo project for Spring Boot</description>
   <properties>
      <java.version>11</java.version>
      <maven.version>3.6.3</maven.version>
      <maven-resolver.version>1.6.1</maven-resolver.version>
   </properties>
   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter</artifactId>
      </dependency>

      <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-core</artifactId>
         <version>${maven.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-compat</artifactId>
         <version>${maven.version}</version>
      </dependency>

      <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-resolver-provider</artifactId>
         <version>${maven.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-util</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-api</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-spi</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-transport-http</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-transport-file</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-connector-basic</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.maven.resolver</groupId>
         <artifactId>maven-resolver-impl</artifactId>
         <version>${maven-resolver.version}</version>
      </dependency>


      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>
Reply | Threaded
Open this post in threaded view
|

Re: Parent pom or BOM not resolved using DefaultProjectBuildingRequest

Anthony Dahanne
Hello,
I still could not find any solution to this problem....
I have cross posted on stackoverflow :
https://stackoverflow.com/questions/66181515/defaultprojectbuildingrequest-org-apache-maven-project-projectbuildingexception
Please let me know if my question is not posted in the right mailing list...
Thanks

Le jeu. 11 févr. 2021, à 21 h 36, Anthony Dahanne <[hidden email]>
a écrit :

> Hello Maven devs,
> I'm trying to programmatically ingest a pom.xml and start a Maven
> dependency resolution on it.
> For that end, I'm using DefaultProjectBuildingRequest and a
> ProjectBuilder.
> I could successfully issue the request, but when trying against a pom that
> relies on a parent or a BOM (spring boot pom for example), it seems like
> the properties set in the poms (including dependencies poms) aren't
> considered.
>
> I have set up a Github project there to reproduce the issue:
>
> Code:
> https://github.com/anthonydahanne/maven-resolver/blob/master/src/main/java/net/dahanne/mavenresolver/MavenResolverApplication.java#L37
>
> Error output :
> https://github.com/anthonydahanne/maven-resolver/runs/1884304754?check_suite_focus=true
> (not sure it's public though)
>
> Pom I tried to resolve:
> https://github.com/anthonydahanne/maven-resolver/blob/master/pom.xml
>
> For convenience, I have copied the code, pom that I tried to resolve and
> the error log at the end of this email
>
> I am kindly asking for your help, in case I missed an option in request or
> the session or.. both...
> A debug session did not reveal much unfortunately...
>
> Thanks in advance for your help!
>
> Anthony
>
>
>
>
> Code snippet:
>
> ContainerConfiguration config = new DefaultContainerConfiguration();
>   config.setAutoWiring(true);
>   config.setClassPathScanning(PlexusConstants.SCANNING_INDEX);
>   PlexusContainer plexusContainer = new DefaultPlexusContainer(config);
>   ProjectBuilder projectBuilder = plexusContainer.lookup(ProjectBuilder.class);
>   RepositorySystem repositorySystem = plexusContainer.lookup(RepositorySystem.class);
>   DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
>   LocalRepository localRepository = new LocalRepository("target/.m2");
>   session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session, localRepository));
>
>   DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest();
>   request.setRepositorySession(session);
>   request.setResolveDependencies(true);
> ArtifactRepository centralRepository = new MavenArtifactRepository();
> centralRepository.setUrl("https://repo.maven.apache.org/maven2/");
> centralRepository.setLayout(new DefaultRepositoryLayout());
> request.setRemoteRepositories(Collections.singletonList(centralRepository));
>
>   ProjectBuildingResult result = projectBuilder.build(new File("pom.xml"), request);
>
> and here is the output:
>
> Caused by: org.apache.maven.project.ProjectBuildingException:
> Some problems were encountered while processing the POMs:
> [ERROR] Invalid artifact repository: null @
> [ERROR] Failed to determine Java version for profile jdk8 @
> io.dropwizard.metrics:metrics-parent:4.1.17,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/io/dropwizard/metrics/metrics-parent/4.1.17/metrics-parent-4.1.17.pom,
> line 160, column 22
> [ERROR] Failed to determine Java version for profile doclint-java8-disable
> @ org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 839, column 17
> [ERROR] Failed to determine Java version for profile
> compile-java8-release-flag @ org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 879, column 18
> [ERROR] Failed to determine Java version for profile include-jdk-misc @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 910, column 22
> [ERROR] Failed to determine Java version for profile java8-test @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 961, column 22
> [ERROR] Failed to determine Java version for profile java9-mr-build @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 998, column 22
> [ERROR] Failed to determine Java version for profile java9-test @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1047, column 22
> [ERROR] Failed to determine Java version for profile java10-mr-build @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1087, column 22
> [ERROR] Failed to determine Java version for profile java10-test @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1139, column 22
> [ERROR] Failed to determine Java version for profile java11-mr-build @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1182, column 22
> [ERROR] Failed to determine Java version for profile java11-test @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1237, column 22
> [ERROR] Failed to determine Java version for profile java12-mr-build @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1283, column 22
> [ERROR] Failed to determine Java version for profile java12-test @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1341, column 22
> [ERROR] Failed to determine Java version for profile java13-mr-build @
> org.jboss:jboss-parent:36,
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1390, column 22
>
>
> And this is the pom I tried to resolve:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
>    <modelVersion>4.0.0</modelVersion>
>    <parent>
>       <groupId>org.springframework.boot</groupId>
>       <artifactId>spring-boot-starter-parent</artifactId>
>       <version>2.4.2</version>
>       <relativePath/> <!-- lookup parent from repository -->
>    </parent>
>    <groupId>net.dahanne</groupId>
>    <artifactId>maven-resolver</artifactId>
>    <version>0.0.1-SNAPSHOT</version>
>    <name>maven-resolver</name>
>    <description>Demo project for Spring Boot</description>
>    <properties>
>       <java.version>11</java.version>
>       <maven.version>3.6.3</maven.version>
>       <maven-resolver.version>1.6.1</maven-resolver.version>
>    </properties>
>    <dependencies>
>       <dependency>
>          <groupId>org.springframework.boot</groupId>
>          <artifactId>spring-boot-starter</artifactId>
>       </dependency>
>
>       <dependency>
>          <groupId>org.apache.maven</groupId>
>          <artifactId>maven-core</artifactId>
>          <version>${maven.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven</groupId>
>          <artifactId>maven-compat</artifactId>
>          <version>${maven.version}</version>
>       </dependency>
>
>       <dependency>
>          <groupId>org.apache.maven</groupId>
>          <artifactId>maven-resolver-provider</artifactId>
>          <version>${maven.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-util</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-api</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-spi</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-transport-http</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-transport-file</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-connector-basic</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-impl</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>
>
>       <dependency>
>          <groupId>org.springframework.boot</groupId>
>          <artifactId>spring-boot-starter-test</artifactId>
>          <scope>test</scope>
>       </dependency>
>    </dependencies>
>
>    <build>
>       <plugins>
>          <plugin>
>             <groupId>org.springframework.boot</groupId>
>             <artifactId>spring-boot-maven-plugin</artifactId>
>          </plugin>
>       </plugins>
>    </build>
>
> </project>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Parent pom or BOM not resolved using DefaultProjectBuildingRequest

Tamás Cservenák
In reply to this post by Anthony Dahanne
Howdy,

take a peek at resolver "demo" snippets here:
https://github.com/apache/maven-resolver/blob/master/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java

Word of warning: do not "mix" ServiceLocator and DI (Guice or SISU)... you
MUST settle on one and set up your environment using that one.
Take a peek a "Booter" class for that (it has commented out code that leads
to Guice, SISU stuff, by default uses ServiceLocator).

Finally, just FTR I need to mention this issue
https://issues.apache.org/jira/browse/MRESOLVER-157
So, current maven-resolver releases still support ServiceLocator, in
upcoming 1.7.0 of it it will be deprecated, and later removed.

HTH
T

On Fri, Feb 12, 2021 at 3:36 AM Anthony Dahanne <[hidden email]>
wrote:

> Hello Maven devs,
> I'm trying to programmatically ingest a pom.xml and start a Maven
> dependency resolution on it.
> For that end, I'm using DefaultProjectBuildingRequest and a ProjectBuilder.
> I could successfully issue the request, but when trying against a pom that
> relies on a parent or a BOM (spring boot pom for example), it seems like
> the properties set in the poms (including dependencies poms) aren't
> considered.
>
> I have set up a Github project there to reproduce the issue:
>
> Code:
>
> https://github.com/anthonydahanne/maven-resolver/blob/master/src/main/java/net/dahanne/mavenresolver/MavenResolverApplication.java#L37
>
> Error output :
>
> https://github.com/anthonydahanne/maven-resolver/runs/1884304754?check_suite_focus=true
> (not sure it's public though)
>
> Pom I tried to resolve:
> https://github.com/anthonydahanne/maven-resolver/blob/master/pom.xml
>
> For convenience, I have copied the code, pom that I tried to resolve and
> the error log at the end of this email
>
> I am kindly asking for your help, in case I missed an option in request or
> the session or.. both...
> A debug session did not reveal much unfortunately...
>
> Thanks in advance for your help!
>
> Anthony
>
>
>
>
> Code snippet:
>
> ContainerConfiguration config = new DefaultContainerConfiguration();
>   config.setAutoWiring(true);
>   config.setClassPathScanning(PlexusConstants.SCANNING_INDEX);
>   PlexusContainer plexusContainer = new DefaultPlexusContainer(config);
>   ProjectBuilder projectBuilder =
> plexusContainer.lookup(ProjectBuilder.class);
>   RepositorySystem repositorySystem =
> plexusContainer.lookup(RepositorySystem.class);
>   DefaultRepositorySystemSession session =
> MavenRepositorySystemUtils.newSession();
>   LocalRepository localRepository = new LocalRepository("target/.m2");
>
> session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session,
> localRepository));
>
>   DefaultProjectBuildingRequest request = new
> DefaultProjectBuildingRequest();
>   request.setRepositorySession(session);
>   request.setResolveDependencies(true);
> ArtifactRepository centralRepository = new MavenArtifactRepository();
> centralRepository.setUrl("https://repo.maven.apache.org/maven2/");
> centralRepository.setLayout(new DefaultRepositoryLayout());
>
> request.setRemoteRepositories(Collections.singletonList(centralRepository));
>
>   ProjectBuildingResult result = projectBuilder.build(new
> File("pom.xml"), request);
>
> and here is the output:
>
> Caused by: org.apache.maven.project.ProjectBuildingException:
> Some problems were encountered while processing the POMs:
> [ERROR] Invalid artifact repository: null @
> [ERROR] Failed to determine Java version for profile jdk8 @
> io.dropwizard.metrics:metrics-parent:4.1.17,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/io/dropwizard/metrics/metrics-parent/4.1.17/metrics-parent-4.1.17.pom,
> line 160, column 22
> [ERROR] Failed to determine Java version for profile doclint-java8-disable
> @ org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 839, column 17
> [ERROR] Failed to determine Java version for profile
> compile-java8-release-flag @ org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 879, column 18
> [ERROR] Failed to determine Java version for profile include-jdk-misc @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 910, column 22
> [ERROR] Failed to determine Java version for profile java8-test @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 961, column 22
> [ERROR] Failed to determine Java version for profile java9-mr-build @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 998, column 22
> [ERROR] Failed to determine Java version for profile java9-test @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1047, column 22
> [ERROR] Failed to determine Java version for profile java10-mr-build @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1087, column 22
> [ERROR] Failed to determine Java version for profile java10-test @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1139, column 22
> [ERROR] Failed to determine Java version for profile java11-mr-build @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1182, column 22
> [ERROR] Failed to determine Java version for profile java11-test @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1237, column 22
> [ERROR] Failed to determine Java version for profile java12-mr-build @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1283, column 22
> [ERROR] Failed to determine Java version for profile java12-test @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1341, column 22
> [ERROR] Failed to determine Java version for profile java13-mr-build @
> org.jboss:jboss-parent:36,
>
> /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jboss-parent/36/jboss-parent-36.pom,
> line 1390, column 22
>
>
> And this is the pom I tried to resolve:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> https://maven.apache.org/xsd/maven-4.0.0.xsd">
>    <modelVersion>4.0.0</modelVersion>
>    <parent>
>       <groupId>org.springframework.boot</groupId>
>       <artifactId>spring-boot-starter-parent</artifactId>
>       <version>2.4.2</version>
>       <relativePath/> <!-- lookup parent from repository -->
>    </parent>
>    <groupId>net.dahanne</groupId>
>    <artifactId>maven-resolver</artifactId>
>    <version>0.0.1-SNAPSHOT</version>
>    <name>maven-resolver</name>
>    <description>Demo project for Spring Boot</description>
>    <properties>
>       <java.version>11</java.version>
>       <maven.version>3.6.3</maven.version>
>       <maven-resolver.version>1.6.1</maven-resolver.version>
>    </properties>
>    <dependencies>
>       <dependency>
>          <groupId>org.springframework.boot</groupId>
>          <artifactId>spring-boot-starter</artifactId>
>       </dependency>
>
>       <dependency>
>          <groupId>org.apache.maven</groupId>
>          <artifactId>maven-core</artifactId>
>          <version>${maven.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven</groupId>
>          <artifactId>maven-compat</artifactId>
>          <version>${maven.version}</version>
>       </dependency>
>
>       <dependency>
>          <groupId>org.apache.maven</groupId>
>          <artifactId>maven-resolver-provider</artifactId>
>          <version>${maven.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-util</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-api</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-spi</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-transport-http</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-transport-file</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-connector-basic</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>       <dependency>
>          <groupId>org.apache.maven.resolver</groupId>
>          <artifactId>maven-resolver-impl</artifactId>
>          <version>${maven-resolver.version}</version>
>       </dependency>
>
>
>       <dependency>
>          <groupId>org.springframework.boot</groupId>
>          <artifactId>spring-boot-starter-test</artifactId>
>          <scope>test</scope>
>       </dependency>
>    </dependencies>
>
>    <build>
>       <plugins>
>          <plugin>
>             <groupId>org.springframework.boot</groupId>
>             <artifactId>spring-boot-maven-plugin</artifactId>
>          </plugin>
>       </plugins>
>    </build>
>
> </project>
>
Reply | Threaded
Open this post in threaded view
|

Re: Parent pom or BOM not resolved using DefaultProjectBuildingRequest

Hervé BOUTEMY
PR provided https://github.com/anthonydahanne/maven-resolver-test/pull/1

in fact, you're not testing resolver directly but project builder which
resolves everything

Regards,

Hervé

Le samedi 13 février 2021, 23:36:28 CET Anthony Dahanne a écrit :

> Hello Tamás,
> Thanks for your answer.
> Yes, I remember I also got a look at this maven-resolver-demos repo; and I
> could even leverage it to successfully resolve GAVs.
> And your remark about the MRESOLVER-157 takes all its meaning with my
> issue: reconciling the "pure maven-resolver" world (GAV transformed into a
> CollectRequest is the input) with the "maven pom model" (a pom File
> transformed into a MavenProject is the input)
> I added the maven-core dependency to the maven-resolver-demos pom, so that
> I could, from ResolveTransitiveDependencies, setup a DefaultProjectBuilder
> (like I did previously, but this time using the Booter session)
> But, alas, the DefaultProjectBuilder needs to be setup with proper DI - so
> I'm stuck here for now wit NPEs on its dependencies.
>
> I'll continue digging to try and have the DefaultProjectBuilder correctly
> wired with all its dependencies.
>
> So bottom line is: I want to resolve a pom file, not a GAV.
>
> Thanks again!
> Anthony
>
>
>
>
>
> Le sam. 13 févr. 2021, à 11 h 00, Tamás Cservenák <[hidden email]> a
>
> écrit :
> > Howdy,
> >
> > take a peek at resolver "demo" snippets here:
> >
> > https://github.com/apache/maven-resolver/blob/master/maven-resolver-demos/
> > maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examp
> > les/ResolveTransitiveDependencies.java
> >
> > Word of warning: do not "mix" ServiceLocator and DI (Guice or SISU)... you
> > MUST settle on one and set up your environment using that one.
> > Take a peek a "Booter" class for that (it has commented out code that
> > leads
> > to Guice, SISU stuff, by default uses ServiceLocator).
> >
> > Finally, just FTR I need to mention this issue
> > https://issues.apache.org/jira/browse/MRESOLVER-157
> > So, current maven-resolver releases still support ServiceLocator, in
> > upcoming 1.7.0 of it it will be deprecated, and later removed.
> >
> > HTH
> > T
> >
> > On Fri, Feb 12, 2021 at 3:36 AM Anthony Dahanne <[hidden email]
> >
> > wrote:
> > > Hello Maven devs,
> > > I'm trying to programmatically ingest a pom.xml and start a Maven
> > > dependency resolution on it.
> > > For that end, I'm using DefaultProjectBuildingRequest and a
> >
> > ProjectBuilder.
> >
> > > I could successfully issue the request, but when trying against a pom
> >
> > that
> >
> > > relies on a parent or a BOM (spring boot pom for example), it seems like
> > > the properties set in the poms (including dependencies poms) aren't
> > > considered.
> > >
> > > I have set up a Github project there to reproduce the issue:
> >
> > > Code:
> > https://github.com/anthonydahanne/maven-resolver/blob/master/src/main/java
> > /net/dahanne/mavenresolver/MavenResolverApplication.java#L37>
> > > Error output :
> > https://github.com/anthonydahanne/maven-resolver/runs/1884304754?check_sui
> > te_focus=true>
> > > (not sure it's public though)
> > >
> > > Pom I tried to resolve:
> > > https://github.com/anthonydahanne/maven-resolver/blob/master/pom.xml
> > >
> > > For convenience, I have copied the code, pom that I tried to resolve and
> > > the error log at the end of this email
> > >
> > > I am kindly asking for your help, in case I missed an option in request
> >
> > or
> >
> > > the session or.. both...
> > > A debug session did not reveal much unfortunately...
> > >
> > > Thanks in advance for your help!
> > >
> > > Anthony
> > >
> > >
> > >
> > >
> > > Code snippet:
> > >
> > > ContainerConfiguration config = new DefaultContainerConfiguration();
> > >
> > >   config.setAutoWiring(true);
> > >   config.setClassPathScanning(PlexusConstants.SCANNING_INDEX);
> > >   PlexusContainer plexusContainer = new DefaultPlexusContainer(config);
> > >   ProjectBuilder projectBuilder =
> > >
> > > plexusContainer.lookup(ProjectBuilder.class);
> > >
> > >   RepositorySystem repositorySystem =
> > >
> > > plexusContainer.lookup(RepositorySystem.class);
> > >
> > >   DefaultRepositorySystemSession session =
> > >
> > > MavenRepositorySystemUtils.newSession();
> > >
> > >   LocalRepository localRepository = new LocalRepository("target/.m2");
> >
> > session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManag
> > er(session,>
> > > localRepository));
> > >
> > >   DefaultProjectBuildingRequest request = new
> > >
> > > DefaultProjectBuildingRequest();
> > >
> > >   request.setRepositorySession(session);
> > >   request.setResolveDependencies(true);
> > >
> > > ArtifactRepository centralRepository = new MavenArtifactRepository();
> > > centralRepository.setUrl("https://repo.maven.apache.org/maven2/");
> > > centralRepository.setLayout(new DefaultRepositoryLayout());
> >
> > request.setRemoteRepositories(Collections.singletonList(centralRepository)
> > );>
> > >   ProjectBuildingResult result = projectBuilder.build(new
> > >
> > > File("pom.xml"), request);
> > >
> > > and here is the output:
> > >
> > > Caused by: org.apache.maven.project.ProjectBuildingException:
> > > Some problems were encountered while processing the POMs:
> > > [ERROR] Invalid artifact repository: null @
> > > [ERROR] Failed to determine Java version for profile jdk8 @
> > > io.dropwizard.metrics:metrics-parent:4.1.17,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/io/dropwizard/
> > metrics/metrics-parent/4.1.17/metrics-parent-4.1.17.pom,>
> > > line 160, column 22
> > > [ERROR] Failed to determine Java version for profile
> >
> > doclint-java8-disable
> >
> > > @ org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 839, column 17
> > > [ERROR] Failed to determine Java version for profile
> > > compile-java8-release-flag @ org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 879, column 18
> > > [ERROR] Failed to determine Java version for profile include-jdk-misc @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 910, column 22
> > > [ERROR] Failed to determine Java version for profile java8-test @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 961, column 22
> > > [ERROR] Failed to determine Java version for profile java9-mr-build @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 998, column 22
> > > [ERROR] Failed to determine Java version for profile java9-test @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1047, column 22
> > > [ERROR] Failed to determine Java version for profile java10-mr-build @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1087, column 22
> > > [ERROR] Failed to determine Java version for profile java10-test @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1139, column 22
> > > [ERROR] Failed to determine Java version for profile java11-mr-build @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1182, column 22
> > > [ERROR] Failed to determine Java version for profile java11-test @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1237, column 22
> > > [ERROR] Failed to determine Java version for profile java12-mr-build @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1283, column 22
> > > [ERROR] Failed to determine Java version for profile java12-test @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1341, column 22
> > > [ERROR] Failed to determine Java version for profile java13-mr-build @
> > > org.jboss:jboss-parent:36,
> >
> > /Users/anthony.dahanne/workspaces/maven-resolver/target/.m2/org/jboss/jbos
> > s-parent/36/jboss-parent-36.pom,>
> > > line 1390, column 22
> > >
> > >
> > > And this is the pom I tried to resolve:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <project xmlns="http://maven.apache.org/POM/4.0.0"
> > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > >
> > >    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > >
> > > https://maven.apache.org/xsd/maven-4.0.0.xsd">
> > >
> > >    <modelVersion>4.0.0</modelVersion>
> > >    <parent>
> > >    
> > >       <groupId>org.springframework.boot</groupId>
> > >       <artifactId>spring-boot-starter-parent</artifactId>
> > >       <version>2.4.2</version>
> > >       <relativePath/> <!-- lookup parent from repository -->
> > >    
> > >    </parent>
> > >    <groupId>net.dahanne</groupId>
> > >    <artifactId>maven-resolver</artifactId>
> > >    <version>0.0.1-SNAPSHOT</version>
> > >    <name>maven-resolver</name>
> > >    <description>Demo project for Spring Boot</description>
> > >    <properties>
> > >    
> > >       <java.version>11</java.version>
> > >       <maven.version>3.6.3</maven.version>
> > >       <maven-resolver.version>1.6.1</maven-resolver.version>
> > >    
> > >    </properties>
> > >    <dependencies>
> > >    
> > >       <dependency>
> > >      
> > >          <groupId>org.springframework.boot</groupId>
> > >          <artifactId>spring-boot-starter</artifactId>
> > >      
> > >       </dependency>
> > >      
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven</groupId>
> > >          <artifactId>maven-core</artifactId>
> > >          <version>${maven.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven</groupId>
> > >          <artifactId>maven-compat</artifactId>
> > >          <version>${maven.version}</version>
> > >      
> > >       </dependency>
> > >      
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven</groupId>
> > >          <artifactId>maven-resolver-provider</artifactId>
> > >          <version>${maven.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-util</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-api</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-spi</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-transport-http</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-transport-file</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-connector-basic</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >       <dependency>
> > >      
> > >          <groupId>org.apache.maven.resolver</groupId>
> > >          <artifactId>maven-resolver-impl</artifactId>
> > >          <version>${maven-resolver.version}</version>
> > >      
> > >       </dependency>
> > >      
> > >      
> > >       <dependency>
> > >      
> > >          <groupId>org.springframework.boot</groupId>
> > >          <artifactId>spring-boot-starter-test</artifactId>
> > >          <scope>test</scope>
> > >      
> > >       </dependency>
> > >    
> > >    </dependencies>
> > >    
> > >    <build>
> > >    
> > >       <plugins>
> > >      
> > >          <plugin>
> > >          
> > >             <groupId>org.springframework.boot</groupId>
> > >             <artifactId>spring-boot-maven-plugin</artifactId>
> > >          
> > >          </plugin>
> > >      
> > >       </plugins>
> > >    
> > >    </build>
> > >
> > > </project>





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