/** * This is used for pom-less execution like running archetype:generate. I am taking out the profile handling and the * interpolation of the base directory until we spec this out properly. */ public MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration configuration ) throws ProjectBuildingException { ProjectBuildingRequest request = injectSession( toRequest( configuration ) ); request.setProcessPlugins( false ); request.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ); ModelSource modelSource = new UrlModelSource( getClass().getResource( "standalone.xml" ) ); MavenProject project = projectBuilder.build( modelSource, request ).getProject(); project.setExecutionRoot( true ); return project; }
public MavenProject buildFromRepository( Artifact artifact, List<ArtifactRepository> remoteRepositories, ProjectBuilderConfiguration configuration, boolean allowStubModel ) throws ProjectBuildingException { ProjectBuildingRequest request = injectSession( toRequest( configuration ) ); request.setRemoteRepositories( normalizeToArtifactRepositories( remoteRepositories, request ) ); request.setProcessPlugins( false ); request.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ); try { return projectBuilder.build( artifact, allowStubModel, request ).getProject(); } catch ( ProjectBuildingException e ) { throw transformError( e ); } }
configuration.setLocalRepository( repositoryRequest.getLocalRepository() ); configuration.setRemoteRepositories( repositoryRequest.getRemoteRepositories() ); configuration.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ); configuration.setProcessPlugins( false ); configuration.setRepositoryMerging( ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT );
public List<ProjectBuildingResult> buildProjects(File mavenProject, boolean recursive) throws ProjectBuildingException, MavenEmbedderException { ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try { 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); } }
public List<ProjectBuildingResult> buildProjects( File mavenProject, boolean recursive ) throws ProjectBuildingException, MavenEmbedderException { ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try { 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 ); } }
public MavenExecutionResult readMavenProject(File pomFile, ProjectBuildingRequest configuration) throws MavenException { long start = System.currentTimeMillis(); log.debug("Reading Maven project: {}", pomFile.getAbsoluteFile()); //$NON-NLS-1$ MavenExecutionResult result = new DefaultMavenExecutionResult(); try { configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); ProjectBuildingResult projectBuildingResult = lookup(ProjectBuilder.class).build(pomFile, configuration); result.setProject(projectBuildingResult.getProject()); result.setDependencyResolutionResult(projectBuildingResult.getDependencyResolutionResult()); } catch (ProjectBuildingException ex) { if (ex.getResults() != null && ex.getResults().size() == 1) { ProjectBuildingResult projectBuildingResult = ex.getResults().get(0); result.setProject(projectBuildingResult.getProject()); result.setDependencyResolutionResult(projectBuildingResult.getDependencyResolutionResult()); } result.addException(ex); } catch (RuntimeException e) { result.addException(e); } finally { log.debug("Read Maven project: {} in {} ms", pomFile.getAbsoluteFile(), System.currentTimeMillis() - start); //$NON-NLS-1$ } return result; }
public ProjectBuildingResult buildProject(File mavenProject) throws ProjectBuildingException, MavenEmbedderException { ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try { 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()); return projectBuilder.build(mavenProject, projectBuildingRequest); } catch (ComponentLookupException e) { throw new MavenEmbedderException(e.getMessage(), e); } finally { Thread.currentThread().setContextClassLoader(originalCl); } }
private MavenProject load(ArtifactInfo ai) { try { Artifact projectArtifact = embedder.createArtifact(ai.groupId, ai.artifactId, ai.version, ai.packaging != null ? ai.packaging : "jar"); ProjectBuildingRequest dpbr = embedder.createMavenExecutionRequest().getProjectBuildingRequest(); //mkleint: remote repositories don't matter we use project embedder. dpbr.setRemoteRepositories(remoteRepos); dpbr.setProcessPlugins(false); dpbr.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); ProjectBuildingResult res = embedder.buildProject(projectArtifact, dpbr); if (res.getProject() != null) { return res.getProject(); } else { LOG.log(Level.FINER, "No project model from repository for {0}: {1}", new Object[] {ai, res.getProblems()}); } } catch (ProjectBuildingException ex) { LOG.log(Level.FINER, "Failed to load project model from repository for {0}: {1}", new Object[] {ai, ex}); } catch (Exception exception) { LOG.log(Level.FINER, "Failed to load project model from repository for " + ai, exception); } return null; }
@Nonnull private MavenProject createProjectFromDependency(@Nonnull Dependency dependency) throws MojoExecutionException { String dependencyKey = dependency.toString(); if (mavenProjectByDependencyCache.containsKey(dependencyKey)) { return mavenProjectByDependencyCache.get(dependencyKey); } getLog().debug("createProjectFromDependency(" + dependency + ")"); Artifact artifactFromDependency = getArtifact(dependency); if (artifactFromDependency == null) { artifactFromDependency = new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getScope(), dependency.getType(), dependency.getClassifier(), artifactHandlerManager.getArtifactHandler(dependency.getType()) ); } ProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); request.setRemoteRepositories(project.getRemoteArtifactRepositories()); // The artifacts are available repositories defined in the projects - this also covers configured mirrors. request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); request.setProcessPlugins(false); request.setResolveDependencies(false); try { ProjectBuildingResult result = projectBuilder.build(artifactFromDependency, request); MavenProject project = result.getProject(); mavenProjectByDependencyCache.put(dependencyKey, project); return project; } catch (ProjectBuildingException e) { throw new MojoExecutionException("Could not resolve required dependencies of POM dependency " + artifactFromDependency, e); } }
configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); configuration.setRepositorySession(repositorySession);
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; }
public void installGems(final GemsInstaller gemsInstaller, final Object repositorySystemSession) throws IOException, ScriptException, GemException, RailsException { final ArtifactRepository localRepository = localRepository(); final ProjectBuildingRequest pomRequest = new DefaultProjectBuildingRequest().setLocalRepository(localRepository) .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_STRICT) .setResolveDependencies(true); gemsInstaller.manager.setRepositorySession(pomRequest, repositorySystemSession); MavenProject pom; try { pom = this.builder.build(new File("pom.xml"), pomRequest) .getProject(); } catch (final ProjectBuildingException e) { throw new RailsException("error building the POM", e); } gemsInstaller.installPom(pom); }
public MavenExecutionResult compileAndGenerateJavadoc(File pom) throws MavenException { try { MavenExecutionRequest request = createExecutionRequest(); lookup(MavenExecutionRequestPopulator.class).populateDefaults(request); request.setPom(pom); ProjectBuildingRequest configuration = request.getProjectBuildingRequest(); configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); configuration.setRepositorySession(createRepositorySession(request)); configuration.setResolveDependencies(true); configuration.setResolveVersionRanges(true); request.setGoals(Arrays.asList(new String[] { "compile", "javadoc:javadoc" })); Properties userProperties = (Properties) request.getUserProperties().clone(); userProperties.put("show", "private"); request.setUserProperties(userProperties); return lookup(Maven.class).execute(request); } catch (MavenExecutionRequestPopulationException e) { throw new MavenException(e); } }
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; }
try { ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); buildingRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); buildingRequest.setProject(null); MavenProject mavenProject = projectBuilder.build(artifact, buildingRequest).getProject();
request.setRemoteRepositories(remoteLegacy); request.setProcessPlugins(false); request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); request.setSystemProperties(System.getProperties()); if (userProperties != null) {
public MavenProject buildModel(final Artifact artifact, final Object repositorySystemSession, final ArtifactRepository localRepository, final List<ArtifactRepository> remoteRepositories, boolean resolve) throws GemException { // build a POM and resolve all artifacts final ProjectBuildingRequest pomRequest = new DefaultProjectBuildingRequest() .setLocalRepository(localRepository) .setRemoteRepositories(remoteRepositories) .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_STRICT) .setResolveDependencies(resolve); setRepositorySession(pomRequest, repositorySystemSession); try { return this.builder.build(artifact, pomRequest).getProject(); } catch (final ProjectBuildingException e) { throw new GemException("error building POM", e); } }
public MavenProject readProject(final File pomFile, MavenExecutionRequest request, boolean resolveDependencies) throws MavenException { try { lookup(MavenExecutionRequestPopulator.class).populateDefaults(request); ProjectBuildingRequest configuration = request.getProjectBuildingRequest(); configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); configuration.setRepositorySession(createRepositorySession(request)); configuration.setResolveDependencies(resolveDependencies); return lookup(ProjectBuilder.class).build(pomFile, configuration).getProject(); } catch (ProjectBuildingException ex) { throw new MavenException(ex); } catch (MavenExecutionRequestPopulationException ex) { throw new MavenException(ex); } }
pbr.setValidationLevel( session.getPomValidationLevel() ); pbr.setProcessPlugins( session.isProcessPomPlugins() ); pbr.setResolveDependencies( false );
public MavenExecutionResult readProjectWithDependencies(MavenExecutionRequest req, boolean useWorkspaceResolution) { if (useWorkspaceResolution) { req.setWorkspaceReader(new NbWorkspaceReader()); } File pomFile = req.getPom(); MavenExecutionResult result = new DefaultMavenExecutionResult(); try { ProjectBuildingRequest configuration = req.getProjectBuildingRequest(); configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); configuration.setResolveDependencies(true); configuration.setRepositorySession(maven.newRepositorySession(req)); ProjectBuildingResult projectBuildingResult = projectBuilder.build(pomFile, configuration); result.setProject(projectBuildingResult.getProject()); result.setDependencyResolutionResult(projectBuildingResult.getDependencyResolutionResult()); } catch (ProjectBuildingException ex) { //don't add the exception here. this should come out as a build marker, not fill //the error logs with msgs return result.addException(ex); } normalizePaths(result.getProject()); return result; }