List of usage examples for org.apache.maven.project ProjectBuildingRequest setResolveDependencies
ProjectBuildingRequest setResolveDependencies(boolean resolveDependencies);
From source file:com.monday_consulting.maven.plugins.fsm.util.resolver.MavenGetArtifactsResolver.java
License:Apache License
private MavenProject getMavenProjectViaRepository(final Module module, final ProjectBuilder projectBuilder) throws MojoFailureException { try {//from w ww .j a va 2s . co m final ProjectBuildingRequest request = new DefaultProjectBuildingRequest(); request.setResolveDependencies(true); request.setRemoteRepositories(mavenProject.getRemoteArtifactRepositories()); request.setRepositorySession(repoSession); final LocalRepositoryManager localRepositoryManager = repoSession.getLocalRepositoryManager(); final File repoBasedir = localRepositoryManager.getRepository().getBasedir(); // the module type artifact (war, jar, pom ...) final DefaultArtifact moduleArtifact = new DefaultArtifact(module.getGroupId(), module.getArtifactId(), module.getClassifier(), module.getType(), module.getVersion()); final String pathForLocalArtifact = localRepositoryManager.getPathForLocalArtifact(moduleArtifact); final File moduleArtifactFile = new File(repoBasedir, pathForLocalArtifact); // the module pom artifact to build maven project final DefaultArtifact pomArtifact = new DefaultArtifact(module.getGroupId(), module.getArtifactId(), module.getClassifier(), "pom", module.getVersion()); final String localArtifactPath = localRepositoryManager.getPathForLocalArtifact(pomArtifact); final File projectFile = new File(repoBasedir, localArtifactPath); MavenProject result; try { log.info("try to build maven project for " + module.getArtifactId() + " from local repository..."); result = projectBuilder.build(projectFile, request).getProject(); if (!moduleArtifactFile.exists()) { resolveArtifact(module, moduleArtifact); } } catch (ProjectBuildingException e) { log.info("failed... try to resolve " + module.getArtifactId() + " from remote repository..."); final Artifact mavenArtifact = new org.apache.maven.artifact.DefaultArtifact(module.getGroupId(), module.getArtifactId(), module.getVersion(), null, module.getType(), module.getClassifier(), new DefaultArtifactHandler()); result = projectBuilder.build(mavenArtifact, request).getProject(); resolveArtifact(module, moduleArtifact); } if (result != null) { log.info("Dependency resolved: " + module.getArtifactId()); result.getArtifact().setFile(moduleArtifactFile); result.setParent(mavenProject); } else { throw new MojoFailureException( "No dependency for " + module.getArtifactId() + " found in local or remote repository"); } return result; } catch (ProjectBuildingException e) { throw new MojoFailureException( "No dependency for " + module.getArtifactId() + "found in local or remote repository", e); } }
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); }// w ww. j a va 2 s . 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:hudson.maven.MavenEmbedder.java
License:Apache License
public List<ProjectBuildingResult> buildProjects(File mavenProject, boolean recursive) throws ProjectBuildingException, MavenEmbedderException { ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try {/*w w w .j av a2 s . c o m*/ Thread.currentThread().setContextClassLoader(this.plexusContainer.getContainerRealm()); ProjectBuilder projectBuilder = lookup(ProjectBuilder.class); ProjectBuildingRequest projectBuildingRequest = this.mavenExecutionRequest.getProjectBuildingRequest(); projectBuildingRequest.setValidationLevel(this.mavenRequest.getValidationLevel()); RepositorySystemSession repositorySystemSession = buildRepositorySystemSession(); projectBuildingRequest.setRepositorySession(repositorySystemSession); projectBuildingRequest.setProcessPlugins(this.mavenRequest.isProcessPlugins()); projectBuildingRequest.setResolveDependencies(this.mavenRequest.isResolveDependencies()); List<ProjectBuildingResult> results = projectBuilder.build(Arrays.asList(mavenProject), recursive, projectBuildingRequest); return results; } catch (ComponentLookupException e) { throw new MavenEmbedderException(e.getMessage(), e); } finally { Thread.currentThread().setContextClassLoader(originalCl); } }
From source file:net.adamcin.oakpal.maven.mojo.OakpalMojoTestCaseBase.java
License:Apache License
protected SessionAndProject buildProject(final File pom) throws Exception { assertNotNull(pom);//from w ww .ja v a2s. c o m assertTrue(pom.exists()); SessionAndProject sessionAndProject = new SessionAndProject(); sessionAndProject.setSession(newMavenSession()); ProjectBuildingRequest buildingRequest = sessionAndProject.getSession().getProjectBuildingRequest(); buildingRequest.setResolveDependencies(true); ProjectBuilder projectBuilder = lookup(ProjectBuilder.class); MavenProject project = projectBuilder.build(pom, buildingRequest).getProject(); sessionAndProject.setProject(project); return sessionAndProject; }
From source file:net.flexmojos.oss.plugin.war.CopyMojo.java
License:Open Source License
private MavenProject getProject(Artifact artifact) throws MojoExecutionException { try {// w ww .j a va 2 s . co 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: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 w w w . j ava 2s . c o 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;/*from w ww . j a v a 2s . c o 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.apifocal.maven.plugins.bom.AbstractBomMojo.java
License:Apache License
protected void importProperties(Dependency artifactMetadata) throws MojoExecutionException { try {//from w w w . j a v a 2s . co m Artifact artifact = repoSystem.createDependencyArtifact(artifactMetadata); getLog().info("Importing properties from " + artifact); ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest()); buildingRequest.setProject(null); buildingRequest.setResolveDependencies(false); MavenProject bomProject = projectBuilder.build(artifact, buildingRequest).getProject(); bomProject.getProperties() .forEach((Object key, Object value) -> project.getProperties().putIfAbsent(key, value)); } catch (ProjectBuildingException ex) { getLog().error("Failed to resolve artifact", ex); throw new MojoExecutionException("Could not read artifact " + artifactMetadata.toString(), ex); } }
From source file:org.appformer.maven.integration.embedder.MavenEmbedder.java
License:Apache License
private ProjectBuildingRequest getProjectBuildingRequest() throws ComponentLookupException { ProjectBuildingRequest projectBuildingRequest = this.mavenExecutionRequest.getProjectBuildingRequest(); projectBuildingRequest.setValidationLevel(this.mavenRequest.getValidationLevel()); RepositorySystemSession repositorySystemSession = componentProvider .getRepositorySystemSession(mavenExecutionRequest); projectBuildingRequest.setRepositorySession(repositorySystemSession); projectBuildingRequest.setProcessPlugins(this.mavenRequest.isProcessPlugins()); projectBuildingRequest.setResolveDependencies(this.mavenRequest.isResolveDependencies()); return projectBuildingRequest; }
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 ww w . jav a 2 s . 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; }