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 <anthony.daha...@gmail.com>
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 via email to