Ok, I found where the problem was... :-)

Certainly I do not set necessary objects to new instance of ProjectBuildingRequest  that I was doing.

Once I have reused the instance provided by the MavenSession instance, the errors gone !

ProjectBuildingRequest request = session.getProjectBuildingRequest();

best regards,

Cristiano


On 24/09/2018 21:17, Cristiano wrote:

Hello, I need some assistance in order to identify whether the issue I'm facing is a bug or a missing feature.

I'm adding a goal to my plugin that must read a POM project from a repository and get details about the dependencies declared on it.

In order to build the POM object I've created the method below that are using Core's org.apache.maven.project.ProjectBuilder:


            public MavenProject loadProject(Artifact artifact,
        MavenSession session,
                    boolean pResolveDependencies) throws
        ProjectBuildingException {
                ProjectBuildingRequest request = new
        DefaultProjectBuildingRequest();
        request.setLocalRepository(session.getLocalRepository());
                request.setRemoteRepositories(
        session.getCurrentProject().getRemoteArtifactRepositories());
        request.setResolveDependencies(pResolveDependencies);
        request.setRepositorySession(session.getRepositorySession());
                request.setInactiveProfileIds(
        Arrays.asList("when-building-java-using-java8"));  ---> I
        added this in order to try no get one of the errors reported.
                return projectBuilder.build(artifact,
        request).getProject();
            }


    In order to test it I'm trying to read this [pom]
    
https://search.maven.org/classic/#artifactdetails%7Cbr.com.c8tech.releng%7Cfpom-deps-felix%7C2.1%7Cpom.

    This POM has declared a POM fragment:

        <dependencyManagement>
            <dependencies>
                <dependency>
    <groupId>br.com.c8tech.releng</groupId>
                    <version>2.1</version>
    <artifactId>fpom-deps-osgi</artifactId>
                    <scope>import</scope>
                    <type>pom</type>

    And I'm using this code:

        {

         pom = loadProject(
                            new
        DefaultArtifact("br.com.c8tech.releng:fpom-deps-felix:pom:2.1"),
                            true);

        }

    The error I'm getting from ProjectBuilder is about not being able
    to get the versions declared in the imported POM ( declared in its
    dependencyManagement) and also not being able to determine the
    Java version of a profile activated by <jdk> property.


    Caused by: org.apache.maven.project.ProjectBuildingException:
    Some problems were encountered while processing the POMs:
    [ERROR] Failed to determine Java version for profile
    when-building-java-using-java8 @
    br.com.c8tech.releng:maven-parent-java:2.1,
    
/home/cvgaviao/.m2/repository/br/com/c8tech/releng/maven-parent-java/2.1/maven-parent-java-2.1.pom,
    line 658, column 22
    [ERROR] 'dependencies.dependency.version' for
    net.java.dev.jna:jna:jar is missing. @
    br.com.c8tech.releng:fpom-deps-felix:[unknown-version],
    
/home/cvgaviao/.m2/repository/br/com/c8tech/releng/fpom-deps-felix/2.1/fpom-deps-felix-2.1.pom,
    line 329, column 21
    [ERROR] 'dependencies.dependency.version' for
    ch.qos.logback:logback-core:jar is missing. @
    br.com.c8tech.releng:fpom-deps-felix:[unknown-version],
    
/home/cvgaviao/.m2/repository/br/com/c8tech/releng/fpom-deps-felix/2.1/fpom-deps-felix-2.1.pom,
    line 337, column 21

could someone tell me if its a missing feature, a bug or maybe am I missing something ?


thanks a lot,


Cristiano


Reply via email to