List of usage examples for org.apache.maven.project ProjectBuildingRequest setRepositoryMerging
ProjectBuildingRequest setRepositoryMerging(RepositoryMerging mode);
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;// w ww. ja v a 2s .c om 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 w w.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 {//w w w . j a va 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; }