Example usage for org.apache.maven.project ProjectBuildingRequest setSystemProperties

List of usage examples for org.apache.maven.project ProjectBuildingRequest setSystemProperties

Introduction

In this page you can find the example usage for org.apache.maven.project ProjectBuildingRequest setSystemProperties.

Prototype

ProjectBuildingRequest setSystemProperties(Properties systemProperties);

Source Link

Document

Sets the system properties to use for interpolation and profile activation.

Usage

From source file:io.airlift.resolver.ArtifactResolver.java

License:Apache License

public List<Artifact> resolvePom(File pomFile) {
    if (pomFile == null) {
        throw new RuntimeException("pomFile is null");
    }//from  w w  w  .j  a  v  a  2  s. c o  m

    MavenProject pom;
    try {
        PlexusContainer container = container();
        org.apache.maven.repository.RepositorySystem lrs = container
                .lookup(org.apache.maven.repository.RepositorySystem.class);
        ProjectBuilder projectBuilder = container.lookup(ProjectBuilder.class);
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
        request.setSystemProperties(requiredSystemProperties());
        request.setRepositorySession(repositorySystemSession);
        request.setProcessPlugins(false);
        request.setLocalRepository(lrs.createDefaultLocalRepository());
        request.setRemoteRepositories(
                Arrays.asList(new ArtifactRepository[] { lrs.createDefaultRemoteRepository() }.clone()));
        ProjectBuildingResult result = projectBuilder.build(pomFile, request);
        pom = result.getProject();
    } catch (Exception e) {
        if (e instanceof RuntimeException) {
            throw (RuntimeException) e;
        }
        throw new RuntimeException("Error loading pom: " + pomFile.getAbsolutePath(), e);
    }

    Artifact rootArtifact = new DefaultArtifact(pom.getArtifact().getGroupId(),
            pom.getArtifact().getArtifactId(), pom.getArtifact().getClassifier(), pom.getArtifact().getType(),
            pom.getArtifact().getVersion(), null, new File(pom.getModel().getBuild().getOutputDirectory()));

    CollectRequest collectRequest = new CollectRequest();
    for (org.apache.maven.model.Dependency dependency : pom.getDependencies()) {
        collectRequest.addDependency(toAetherDependency(dependency));
    }
    for (RemoteRepository repository : pom.getRemoteProjectRepositories()) {
        collectRequest.addRepository(repository);
    }
    for (RemoteRepository repository : repositories) {
        collectRequest.addRepository(repository);
    }

    // Make sure we account for managed dependencies
    if (pom.getDependencyManagement() != null) {
        for (org.apache.maven.model.Dependency managedDependency : pom.getDependencyManagement()
                .getDependencies()) {
            collectRequest.addManagedDependency(toAetherDependency(managedDependency));
        }
    }

    DependencyRequest dependencyRequest = new DependencyRequest(collectRequest,
            DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME));
    List<Artifact> artifacts = resolveArtifacts(dependencyRequest);
    return ImmutableList.<Artifact>builder().add(rootArtifact).addAll(artifacts).build();
}

From source file:io.github.patrickpilch.dependencylicensechecker.DependencyChecker.java

License:Open Source License

private MavenProject generateMavenProject(final Artifact artifact) throws ProjectBuildingException {
    Objects.requireNonNull(artifact);
    final Artifact projectArtifact = repositorySystem.createProjectArtifact(artifact.getGroupId(),
            artifact.getArtifactId(), artifact.getVersion());

    final ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest();
    projectBuildingRequest.setRepositorySession(repositorySystemSession);
    projectBuildingRequest.setSystemProperties(System.getProperties());
    return projectBuilder.build(projectArtifact, projectBuildingRequest).getProject();
}

From source file:net.oneandone.maven.embedded.Maven.java

License:Apache License

public MavenProject loadPom(FileNode file, boolean resolve, Properties userProperties, List<String> profiles,
        List<Dependency> dependencies) throws RepositoryException, ProjectBuildingException {
    ProjectBuildingRequest request;
    ProjectBuildingResult result;/*from   ww w.j av a2  s.  co  m*/
    List<Exception> problems;

    request = new DefaultProjectBuildingRequest();
    request.setRepositorySession(repositorySession);
    request.setRemoteRepositories(remoteLegacy);
    request.setProcessPlugins(false);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    request.setSystemProperties(System.getProperties());
    if (userProperties != null) {
        request.setUserProperties(userProperties);
    }
    // If you don't turn this into RepositoryMerging.REQUEST_DOMINANT the dependencies will be resolved against Maven Central
    // and not against the configured repositories. The default of the DefaultProjectBuildingRequest is
    // RepositoryMerging.POM_DOMINANT.
    request.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);
    request.setResolveDependencies(resolve);
    if (profiles != null) {
        request.setActiveProfileIds(profiles);
    }
    result = builder.build(file.toPath().toFile(), request);

    // TODO: i've seen these collection errors for a dependency with ranges. Why does Aether NOT throw an exception in this case?
    if (result.getDependencyResolutionResult() != null) {
        problems = result.getDependencyResolutionResult().getCollectionErrors();
        if (problems != null && !problems.isEmpty()) {
            throw new RepositoryException("collection errors: " + problems.toString(), problems.get(0));
        }
    }

    if (dependencies != null) {
        if (!resolve) {
            throw new IllegalArgumentException();
        }
        dependencies.addAll(result.getDependencyResolutionResult().getDependencies());
    }
    return result.getProject();
}

From source file:net.oneandone.maven.plugins.prerelease.util.Maven.java

License:Apache License

public MavenProject loadPom(FileNode file) throws ProjectBuildingException {
    ProjectBuildingRequest request;
    ProjectBuildingResult result;/*www. j  av a 2 s.co m*/

    // session initializes the repository session in the build request
    request = new DefaultProjectBuildingRequest(parentSession.getProjectBuildingRequest());
    request.setRemoteRepositories(remoteRepositories);
    request.setProcessPlugins(false);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    request.setSystemProperties(System.getProperties());
    //If you don't turn this into RepositoryMerging.REQUEST_DOMINANT the dependencies will be resolved against Maven Central
    //and not against the configured repositories. The default of the DefaultProjectBuildingRequest is
    // RepositoryMerging.POM_DOMINANT.
    request.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);
    request.setResolveDependencies(false);
    result = builder.build(file.toPath().toFile(), request);
    return result.getProject();
}

From source file:org.commonjava.emb.project.ProjectToolsSessionInjector.java

License:Apache License

public synchronized ProjectBuildingRequest getProjectBuildingRequest(final ProjectToolsSession session)
        throws ProjectToolsException {
    ProjectBuildingRequest pbr = session.getProjectBuildingRequest();
    try {//from   w  ww. j  a  v  a 2 s . co  m
        if (pbr == null) {
            pbr = emb.serviceManager().createProjectBuildingRequest();

            pbr.setProcessPlugins(false);
            pbr.setResolveDependencies(false);
            pbr.setSystemProperties(System.getProperties());
            pbr.setInactiveProfileIds(new ArrayList<String>());
            pbr.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);

            final RepositorySystemSession rss = getRepositorySystemSession(session);
            pbr.setRepositorySession(rss);
            pbr.setLocalRepository(
                    mavenRepositorySystem.createLocalRepository(rss.getLocalRepository().getBasedir()));
            pbr.setRemoteRepositories(getArtifactRepositories(session));

            session.setProjectBuildingRequest(pbr);
        } else {
            pbr = new DefaultProjectBuildingRequest(pbr);
            pbr.setRepositorySession(getRepositorySystemSession(session));
        }
    } catch (final EMBException e) {
        throw new ProjectToolsException("Failed to create project-building request: %s", e, e.getMessage());
    } catch (final InvalidRepositoryException e) {
        throw new ProjectToolsException("Failed to create local-repository instance. Reason: %s", e,
                e.getMessage());
    }

    return pbr;
}

From source file:org.jboss.forge.addon.maven.projects.MavenBuildManager.java

License:Open Source License

@SuppressWarnings("deprecation")
private ProjectBuildingRequest getProjectBuildingRequest(final boolean offline) {
    ClassLoader cl = Thread.currentThread().getContextClassLoader();
    try {/*from  w  w  w  .  jav  a 2  s .  com*/
        Settings settings = container.getSettings();
        // TODO this needs to be configurable via .forge
        // TODO this reference to the M2_REPO should probably be centralized

        MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest();
        MavenExecutionRequestPopulator populator = getPlexus().lookup(MavenExecutionRequestPopulator.class);
        populator.populateFromSettings(executionRequest, container.getSettings());
        populator.populateDefaults(executionRequest);
        RepositorySystem system = getPlexus().lookup(RepositorySystem.class);
        ProjectBuildingRequest request = executionRequest.getProjectBuildingRequest();

        ArtifactRepository localRepository = RepositoryUtils.toArtifactRepository("local",
                new File(settings.getLocalRepository()).toURI().toURL().toString(), null, true, true);
        request.setLocalRepository(localRepository);

        List<ArtifactRepository> settingsRepos = new ArrayList<>(request.getRemoteRepositories());
        List<String> activeProfiles = settings.getActiveProfiles();

        Map<String, Profile> profiles = settings.getProfilesAsMap();

        for (String id : activeProfiles) {
            Profile profile = profiles.get(id);
            if (profile != null) {
                List<Repository> repositories = profile.getRepositories();
                for (Repository repository : repositories) {
                    settingsRepos.add(RepositoryUtils.convertFromMavenSettingsRepository(repository));
                }
            }
        }
        request.setRemoteRepositories(settingsRepos);
        request.setSystemProperties(System.getProperties());

        DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession();
        Proxy activeProxy = settings.getActiveProxy();
        if (activeProxy != null) {
            DefaultProxySelector dps = new DefaultProxySelector();
            dps.add(RepositoryUtils.convertFromMavenProxy(activeProxy), activeProxy.getNonProxyHosts());
            repositorySession.setProxySelector(dps);
        }
        LocalRepository localRepo = new LocalRepository(settings.getLocalRepository());
        repositorySession
                .setLocalRepositoryManager(system.newLocalRepositoryManager(repositorySession, localRepo));
        repositorySession.setOffline(offline);
        List<Mirror> mirrors = executionRequest.getMirrors();
        if (mirrors != null) {
            DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
            for (Mirror mirror : mirrors) {
                mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false,
                        mirror.getMirrorOf(), mirror.getMirrorOfLayouts());
            }
            repositorySession.setMirrorSelector(mirrorSelector);
        }

        request.setRepositorySession(repositorySession);
        request.setProcessPlugins(false);
        request.setResolveDependencies(false);
        return request;
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new RuntimeException("Could not create Maven project building request", e);
    } finally {
        /*
         * We reset the classloader to prevent potential modules bugs if Classwords container changes classloaders on
         * us
         */
        Thread.currentThread().setContextClassLoader(cl);
    }
}

From source file:org.jboss.forge.arquillian.maven.ProjectHelper.java

License:Open Source License

private ProjectBuildingRequest getBuildingRequest(PlexusContainer plexus) {
    if (this.request == null) {
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
        try {/*from  w w w  .j  a  v a 2s . c  o m*/
            Settings settings = mavenContainer.getSettings();
            // TODO this needs to be configurable via .forge
            // TODO this reference to the M2_REPO should probably be centralized
            MavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest();

            RepositorySystem repositorySystem = plexus.lookup(RepositorySystem.class);
            MavenExecutionRequestPopulator requestPopulator = plexus
                    .lookup(MavenExecutionRequestPopulator.class);

            requestPopulator.populateFromSettings(executionRequest, settings);
            requestPopulator.populateDefaults(executionRequest);

            ProjectBuildingRequest request = executionRequest.getProjectBuildingRequest();

            org.apache.maven.artifact.repository.ArtifactRepository localRepository = RepositoryUtils
                    .toArtifactRepository("local",
                            new File(settings.getLocalRepository()).toURI().toURL().toString(), null, true,
                            true);
            request.setLocalRepository(localRepository);

            List<org.apache.maven.artifact.repository.ArtifactRepository> settingsRepos = new ArrayList<org.apache.maven.artifact.repository.ArtifactRepository>(
                    request.getRemoteRepositories());
            List<String> activeProfiles = settings.getActiveProfiles();

            Map<String, Profile> profiles = settings.getProfilesAsMap();

            for (String id : activeProfiles) {
                Profile profile = profiles.get(id);
                if (profile != null) {
                    List<Repository> repositories = profile.getRepositories();
                    for (Repository repository : repositories) {
                        settingsRepos.add(RepositoryUtils.convertFromMavenSettingsRepository(repository));
                    }
                }
            }
            request.setRemoteRepositories(settingsRepos);
            request.setSystemProperties(System.getProperties());

            DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession();
            Proxy activeProxy = settings.getActiveProxy();
            if (activeProxy != null) {
                DefaultProxySelector dps = new DefaultProxySelector();
                dps.add(RepositoryUtils.convertFromMavenProxy(activeProxy), activeProxy.getNonProxyHosts());
                repositorySession.setProxySelector(dps);
            }
            LocalRepository localRepo = new LocalRepository(settings.getLocalRepository());

            repositorySession.setLocalRepositoryManager(
                    repositorySystem.newLocalRepositoryManager(repositorySession, localRepo));
            repositorySession.setOffline(settings.isOffline());
            List<Mirror> mirrors = executionRequest.getMirrors();
            DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
            if (mirrors != null) {
                for (Mirror mirror : mirrors) {
                    mirrorSelector.add(mirror.getId(), mirror.getUrl(), mirror.getLayout(), false,
                            mirror.getMirrorOf(), mirror.getMirrorOfLayouts());
                }
            }
            repositorySession.setMirrorSelector(mirrorSelector);

            LazyAuthenticationSelector authSelector = new LazyAuthenticationSelector(mirrorSelector);
            for (Server server : settings.getServers()) {
                authSelector.add(server.getId(),
                        new AuthenticationBuilder().addUsername(server.getUsername())
                                .addPassword(server.getPassword())
                                .addPrivateKey(server.getPrivateKey(), server.getPassphrase()).build());
            }
            repositorySession.setAuthenticationSelector(authSelector);

            request.setRepositorySession(repositorySession);
            request.setProcessPlugins(false);
            request.setResolveDependencies(false);
            this.request = request;
        } catch (RuntimeException e) {
            throw e;
        } catch (Exception e) {
            throw new RuntimeException("Could not create Maven project building request", e);
        } finally {
            /*
             * We reset the classloader to prevent potential modules bugs if Classwords container changes classloaders
             * on us
             */
            Thread.currentThread().setContextClassLoader(cl);
        }
    }
    return request;
}

From source file:org.jszip.maven.ProjectBuildingRequestCreator.java

License:Apache License

private static void injectSession(ProjectBuildingRequest request, MavenSession session) {
    request.setSystemProperties(session.getSystemProperties());
    if (request.getUserProperties().isEmpty()) {
        request.setUserProperties(session.getUserProperties());
    }/*from  www.ja  va2 s. c  o m*/
}

From source file:org.jszip.maven.RunMojo.java

License:Apache License

private List<MavenProject> buildReactorProjects() throws Exception {

    List<MavenProject> projects = new ArrayList<MavenProject>();
    for (MavenProject p : reactorProjects) {
        ProjectBuildingRequest request = ProjectBuildingRequestCreator.create(session);

        request.setProcessPlugins(true);
        request.setProfiles(request.getProfiles());
        request.setActiveProfileIds(session.getRequest().getActiveProfiles());
        request.setInactiveProfileIds(session.getRequest().getInactiveProfiles());
        request.setRemoteRepositories(session.getRequest().getRemoteRepositories());
        request.setSystemProperties(session.getSystemProperties());
        request.setUserProperties(session.getUserProperties());
        request.setRemoteRepositories(session.getRequest().getRemoteRepositories());
        request.setPluginArtifactRepositories(session.getRequest().getPluginArtifactRepositories());
        request.setLocalRepository(localRepository);
        request.setBuildStartTime(session.getRequest().getStartTime());
        request.setResolveDependencies(true);
        request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_STRICT);
        projects.add(projectBuilder.build(p.getFile(), request).getProject());
    }/*from w ww.  j av a  2s .  co  m*/
    return new ProjectSorter(projects).getSortedProjects();
}

From source file:org.nbheaven.sqe.core.maven.utils.MavenUtilities.java

License:Open Source License

/**
 * try to collect the plugin's dependency artifacts
 * as defined in <dependencies> section within <plugin>. Will only
 * return files currently in local repository
 *
 * @return list of files in local repository
 *//*from  w  w  w.j  a  v  a 2 s . co m*/
public static List<File> findDependencyArtifacts(Project project, String pluginGroupId, String pluginArtifactId,
        boolean includePluginArtifact) {
    List<File> cpFiles = new ArrayList<File>();
    final NbMavenProject p = project.getLookup().lookup(NbMavenProject.class);
    final MavenEmbedder online = EmbedderFactory.getOnlineEmbedder();
    MavenProject mp = p.getMavenProject();
    if (includePluginArtifact) {
        Set<Artifact> arts = new HashSet<Artifact>();
        arts.addAll(mp.getReportArtifacts());
        arts.addAll(mp.getPluginArtifacts());
        for (Artifact a : arts) {
            if (pluginArtifactId.equals(a.getArtifactId()) && pluginGroupId.equals(a.getGroupId())) {
                File f = a.getFile();
                if (f == null) {
                    //somehow the report plugins are not resolved, we need to workaround that..
                    f = FileUtil.normalizeFile(new File(new File(online.getLocalRepository().getBasedir()),
                            online.getLocalRepository().pathOf(a)));
                }
                if (!f.exists()) {
                    try {
                        online.resolve(a, mp.getRemoteArtifactRepositories(), online.getLocalRepository());
                    } catch (ArtifactResolutionException ex) {
                        Exceptions.printStackTrace(ex);
                    } catch (ArtifactNotFoundException ex) {
                        Exceptions.printStackTrace(ex);
                    }
                }
                if (f.exists()) {
                    cpFiles.add(f);
                    try {
                        ProjectBuildingRequest req = new DefaultProjectBuildingRequest();
                        req.setRemoteRepositories(mp.getRemoteArtifactRepositories());
                        req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
                        req.setSystemProperties(online.getSystemProperties());
                        ProjectBuildingResult res = online.buildProject(a, req);
                        MavenProject mp2 = res.getProject();
                        if (mp2 != null) {
                            // XXX this is not really right, but mp.dependencyArtifacts = null for some reason
                            for (Dependency dep : mp2.getDependencies()) {
                                Artifact a2 = online.createArtifact(dep.getGroupId(), dep.getArtifactId(),
                                        dep.getVersion(), "jar");
                                online.resolve(a2, mp.getRemoteArtifactRepositories(),
                                        online.getLocalRepository());
                                File df = a2.getFile();
                                if (df.exists()) {
                                    cpFiles.add(df);
                                }
                            }
                        }
                    } catch (Exception x) {
                        Exceptions.printStackTrace(x);
                    }
                }
            }
        }

    }
    List<Plugin> plugins = mp.getBuildPlugins();
    for (Plugin plug : plugins) {
        if (pluginArtifactId.equals(plug.getArtifactId()) && pluginGroupId.equals(plug.getGroupId())) {
            try {
                List<Dependency> deps = plug.getDependencies();
                ArtifactFactory artifactFactory = online.getPlexus().lookup(ArtifactFactory.class);
                for (Dependency d : deps) {
                    final Artifact projectArtifact = artifactFactory.createArtifactWithClassifier(
                            d.getGroupId(), d.getArtifactId(), d.getVersion(), d.getType(), d.getClassifier());
                    String localPath = online.getLocalRepository().pathOf(projectArtifact);
                    File f = FileUtil
                            .normalizeFile(new File(online.getLocalRepository().getBasedir(), localPath));
                    if (!f.exists()) {
                        try {
                            online.resolve(projectArtifact, mp.getRemoteArtifactRepositories(),
                                    online.getLocalRepository());
                        } catch (ArtifactResolutionException ex) {
                            ex.printStackTrace();
                            //                                        Exceptions.printStackTrace(ex);
                        } catch (ArtifactNotFoundException ex) {
                            ex.printStackTrace();
                            //                            Exceptions.printStackTrace(ex);
                        }
                    }
                    if (f.exists()) {
                        cpFiles.add(f);
                    }
                }
            } catch (ComponentLookupException ex) {
                Exceptions.printStackTrace(ex);
            }
        }
    }
    return cpFiles;
}