List of usage examples for org.apache.maven.project ProjectBuildingRequest setSystemProperties
ProjectBuildingRequest setSystemProperties(Properties systemProperties);
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; }