List of usage examples for org.apache.maven.project ProjectBuildingRequest setLocalRepository
ProjectBuildingRequest setLocalRepository(ArtifactRepository localRepository);
From source file:com.liferay.maven.plugins.AbstractToolsLiferayMojo.java
License:Open Source License
protected MavenProject resolveProject(Artifact artifact) throws Exception { Artifact pomArtifact = artifact;// w ww. ja v a2 s . c o m String type = artifact.getType(); if (!type.equals("pom")) { pomArtifact = artifactFactory.createArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), "", "pom"); } ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest(); projectBuildingRequest.setLocalRepository(localArtifactRepository); projectBuildingRequest.setRemoteRepositories(remoteArtifactRepositories); projectBuildingRequest.setRepositorySession(session.getRepositorySession()); List<String> activeProfileIds = new ArrayList<String>(); MavenExecutionRequest mavenExecutionRequest = session.getRequest(); for (String activeProfile : mavenExecutionRequest.getActiveProfiles()) { activeProfileIds.add(activeProfile); } projectBuildingRequest.setActiveProfileIds(activeProfileIds); projectBuildingRequest.setProfiles(mavenExecutionRequest.getProfiles()); ProjectBuildingResult projectBuildingResult = projectBuilder.build(pomArtifact, true, projectBuildingRequest); return projectBuildingResult.getProject(); }
From source file:de.fct.companian.analyze.mvn.helper.MvnProjectBuilder.java
License:Apache License
public static MavenProject buildMavenProject(File pomFile) { if (logger.isDebugEnabled()) { logger.debug("buildMavenProject() start, pomFile=" + pomFile); }/* www .j a v a2s . c o m*/ MavenProject mvnProject = null; ClassWorld classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader()); ContainerConfiguration cc = new DefaultContainerConfiguration().setClassWorld(classWorld) .setName("embedder"); DefaultPlexusContainer container; org.codehaus.plexus.logging.Logger mvnLogger; try { mvnLogger = new ConsoleLogger(org.codehaus.plexus.logging.Logger.LEVEL_DEBUG, "Console"); container = new DefaultPlexusContainer(cc); container.setLoggerManager(new MavenLoggerManager(mvnLogger)); container.getLoggerManager().setThresholds(org.codehaus.plexus.logging.Logger.LEVEL_DEBUG); ProjectBuilder builder; try { builder = container.lookup(ProjectBuilder.class); logger.info("buildMavenProject() project builder = " + builder); try { ArtifactRepositoryFactory repoFactory = new DefaultArtifactRepositoryFactory(); ArtifactRepository localRepo = repoFactory.createArtifactRepository("mylocal", "file://h:/maven/repository", new DefaultRepositoryLayout(), new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy()); List<ArtifactRepository> remoteRepos = new ArrayList<ArtifactRepository>(); ArtifactRepository mvnCentral = repoFactory.createArtifactRepository("mvnCentral", "http://repo1.maven.org/maven2/", new DefaultRepositoryLayout(), new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy()); remoteRepos.add(mvnCentral); ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest(); buildRequest.setLocalRepository(localRepo); buildRequest.setRemoteRepositories(remoteRepos); buildRequest.setResolveDependencies(true); buildRequest.setOffline(false); ProjectBuildingResult buildResult = builder.build(pomFile, buildRequest); if (buildResult != null) { logger.info("buildMavenProject() got a build result"); mvnProject = buildResult.getProject(); } } catch (ProjectBuildingException e) { logger.error("buildMavenProject() error building project", e); } } catch (ComponentLookupException e) { logger.error("buildMavenProject() error looking up ArtifactResolver", e); } } catch (PlexusContainerException e) { logger.error("buildMavenProject() error from Plexus container", e); } if (logger.isDebugEnabled()) { logger.debug("buildMavenProject() finished, mvnProject=" + mvnProject); } return mvnProject; }
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"); }/* w w w .j av a2s.co 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:net.flexmojos.oss.plugin.war.CopyMojo.java
License:Open Source License
private MavenProject getProject(Artifact artifact) throws MojoExecutionException { try {//from w ww. j a v a2 s . c o m ProjectBuildingRequest request = new DefaultProjectBuildingRequest(); request.setLocalRepository(localRepository); request.setRemoteRepositories(remoteRepositories); request.setResolveDependencies(true); ArrayList<String> ids = new ArrayList<String>(); for (Profile profile : project.getActiveProfiles()) { ids.add(profile.getId()); } request.setActiveProfileIds(ids); request.setRepositorySession(session.getRepositorySession()); return projectBuilder.build(artifact, request).getProject(); } catch (ProjectBuildingException e) { getLog().warn("Failed to retrieve pom for " + artifact); return null; } }
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 w w . j av a 2s .c o 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.ce.mvns2i.MavenUtils.java
License:Open Source License
public String getDeploymentDir(String projectDir) throws Exception { ProjectBuilder projectBuilder = create(ProjectBuilder.class); File pomFile = new File(projectDir, "pom.xml"); MavenExecutionRequest mer = new DefaultMavenExecutionRequest(); File mvnDir;/*from ww w .ja v a 2 s . c om*/ String m2dir = System.getProperty("maven.repo"); if (m2dir != null) { mvnDir = new File(m2dir); } else { mvnDir = new File(System.getProperty("user.home"), ".m2/repository"); } if (mvnDir.exists() == false) { //noinspection ResultOfMethodCallIgnored mvnDir.mkdirs(); } log.info(String.format("Using Maven repository: %s", mvnDir)); final Checker checker = new Checker(); ProjectBuildingRequest request = mer.getProjectBuildingRequest(); request.setActiveProfileIds(Collections.singletonList(checker.getDefaultProfile())); MavenArtifactRepository artifactRepository = new MavenArtifactRepository("local", mvnDir.toURI().toString(), create(ArtifactRepositoryLayout.class), new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy()); request.setLocalRepository(artifactRepository); DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); session.setOffline(!Boolean.getBoolean("online")); // use offline by default LocalRepository localRepository = new LocalRepository(mvnDir); LocalRepositoryManager localRepositoryManager = create(LocalRepositoryManagerFactory.class) .newInstance(session, localRepository); session.setLocalRepositoryManager(localRepositoryManager); request.setRepositorySession(session); MavenRepositorySystem mrs = create(MavenRepositorySystem.class); ArtifactRepository remoteRepository = mrs.createDefaultRemoteRepository(mer); List<ArtifactRepository> repositories = Arrays.asList(artifactRepository, remoteRepository); request.setRemoteRepositories(repositories); MavenProject project = projectBuilder.build(pomFile, request).getProject(); recurse(projectBuilder, request, checker, new File(projectDir), "", project); return checker.result(); }
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 {/* w w w.ja v a2 s .c om*/ 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 www . 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.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()); }/* w w w.j av a 2s .c o m*/ return new ProjectSorter(projects).getSortedProjects(); }
From source file:org.keedio.maven.plugins.shade.mojo.ShadeMojo.java
License:Apache License
private void createDependencyReducedPom(Set<String> artifactsToRemove) throws IOException, DependencyGraphBuilderException, ProjectBuildingException { Model model = project.getOriginalModel(); List<Dependency> dependencies = new ArrayList<Dependency>(); boolean modified = false; List<Dependency> transitiveDeps = new ArrayList<Dependency>(); for (Artifact artifact : project.getArtifacts()) { if ("pom".equals(artifact.getType())) { // don't include pom type dependencies in dependency reduced pom continue; }/*from w ww . j a va 2 s .co m*/ //promote Dependency dep = new Dependency(); dep.setArtifactId(artifact.getArtifactId()); if (artifact.hasClassifier()) { dep.setClassifier(artifact.getClassifier()); } dep.setGroupId(artifact.getGroupId()); dep.setOptional(artifact.isOptional()); dep.setScope(artifact.getScope()); dep.setType(artifact.getType()); if (useBaseVersion) { dep.setVersion(artifact.getBaseVersion()); } else { dep.setVersion(artifact.getVersion()); } //we'll figure out the exclusions in a bit. transitiveDeps.add(dep); } List<Dependency> origDeps = project.getDependencies(); if (promoteTransitiveDependencies) { origDeps = transitiveDeps; } for (Dependency d : origDeps) { dependencies.add(d); String id = getId(d); if (artifactsToRemove.contains(id)) { modified = true; if (keepDependenciesWithProvidedScope) { d.setScope("provided"); } else { dependencies.remove(d); } } } // Check to see if we have a reduction and if so rewrite the POM. if (modified) { while (modified) { model.setDependencies(dependencies); if (generateUniqueDependencyReducedPom) { dependencyReducedPomLocation = File.createTempFile("dependency-reduced-pom-", ".xml", project.getBasedir()); project.getProperties().setProperty("maven.shade.dependency-reduced-pom", dependencyReducedPomLocation.getAbsolutePath()); } else { if (dependencyReducedPomLocation == null) { // MSHADE-123: We can't default to 'target' because it messes up uses of ${project.basedir} dependencyReducedPomLocation = new File(project.getBasedir(), "dependency-reduced-pom.xml"); } } File f = dependencyReducedPomLocation; getLog().info("Dependency-reduced POM written at: " + f.getAbsolutePath()); if (f.exists()) { //noinspection ResultOfMethodCallIgnored f.delete(); } Writer w = WriterFactory.newXmlWriter(f); String replaceRelativePath = null; if (model.getParent() != null) { replaceRelativePath = model.getParent().getRelativePath(); } if (model.getParent() != null) { File parentFile = new File(project.getBasedir(), model.getParent().getRelativePath()) .getCanonicalFile(); if (!parentFile.isFile()) { parentFile = new File(parentFile, "pom.xml"); } parentFile = parentFile.getCanonicalFile(); String relPath = RelativizePath.convertToRelativePath(parentFile, f); model.getParent().setRelativePath(relPath); } try { PomWriter.write(w, model, true); } finally { if (model.getParent() != null) { model.getParent().setRelativePath(replaceRelativePath); } w.close(); } ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest()); projectBuildingRequest.setLocalRepository(localRepository); projectBuildingRequest.setRemoteRepositories(remoteArtifactRepositories); ProjectBuildingResult result = projectBuilder.build(f, projectBuildingRequest); modified = updateExcludesInDeps(result.getProject(), dependencies, transitiveDeps); } project.setFile(dependencyReducedPomLocation); } }