use of org.apache.maven.project.ProjectBuildingResult in project evosuite by EvoSuite.
the class EvoSuiteRunner method getCommandToRunEvoSuite.
/**
* We run the EvoSuite that is provided with the plugin
*
* @return
*/
private List<String> getCommandToRunEvoSuite() {
logger.debug("EvoSuite Maven Plugin Artifacts: " + Arrays.toString(artifacts.toArray()));
Artifact evosuite = null;
for (Artifact art : artifacts) {
// first find the main EvoSuite jar among the dependencies
if (art.getArtifactId().equals("evosuite-master")) {
evosuite = art;
break;
}
}
if (evosuite == null) {
logger.error("CRITICAL ERROR: plugin can detect EvoSuite executable");
return null;
}
logger.debug("EvoSuite located at: " + evosuite.getFile());
/*
* now, build a project descriptor for evosuite, which is needed to
* query all of its dependencies
*/
DefaultProjectBuildingRequest req = new DefaultProjectBuildingRequest();
req.setRepositorySession(repoSession);
req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
req.setSystemProperties(System.getProperties());
req.setResolveDependencies(true);
ProjectBuildingResult res;
try {
res = projectBuilder.build(evosuite, req);
} catch (ProjectBuildingException e) {
logger.error("Failed: " + e.getMessage(), e);
return null;
}
// build the classpath to run EvoSuite
String cp = evosuite.getFile().getAbsolutePath();
for (Artifact dep : res.getProject().getArtifacts()) {
cp += File.pathSeparator + dep.getFile().getAbsolutePath();
}
logger.debug("EvoSuite classpath: " + cp);
String entryPoint = EvoSuite.class.getName();
List<String> cmd = new ArrayList<>();
cmd.add(JavaExecCmdUtil.getJavaBinExecutablePath());
cmd.add("-D" + LoggingUtils.USE_DIFFERENT_LOGGING_XML_PARAMETER + "=logback-ctg-entry.xml");
cmd.add("-Dlogback.configurationFile=logback-ctg-entry.xml");
cmd.add("-cp");
cmd.add(cp);
cmd.add(entryPoint);
return cmd;
}
use of org.apache.maven.project.ProjectBuildingResult in project spring-cloud-function by spring-cloud.
the class DependencyResolutionModule method dependencies.
public List<Dependency> dependencies(final Resource resource, final Properties properties) {
initialize();
try {
ProjectBuildingRequest request = getProjectBuildingRequest(properties);
request.setResolveDependencies(true);
synchronized (DependencyResolver.class) {
ProjectBuildingResult result = projectBuilder.build(new PropertiesModelSource(properties, resource), request);
DependencyResolver.globals = null;
DependencyResolutionResult dependencies = result.getDependencyResolutionResult();
if (!dependencies.getUnresolvedDependencies().isEmpty()) {
StringBuilder builder = new StringBuilder();
for (Dependency dependency : dependencies.getUnresolvedDependencies()) {
List<Exception> errors = dependencies.getResolutionErrors(dependency);
for (Exception exception : errors) {
if (builder.length() > 0) {
builder.append("\n");
}
builder.append(exception.getMessage());
}
}
throw new RuntimeException(builder.toString());
}
return runtime(dependencies.getDependencies());
}
} catch (ProjectBuildingException | NoLocalRepositoryManagerException e) {
throw new IllegalStateException("Cannot build model", e);
}
}
use of org.apache.maven.project.ProjectBuildingResult in project spring-cloud-function by spring-cloud.
the class DependencyResolutionModule method readModel.
public Model readModel(final Resource resource, final Properties properties) {
initialize();
try {
ProjectBuildingRequest request = getProjectBuildingRequest(properties);
request.setResolveDependencies(false);
ProjectBuildingResult result = projectBuilder.build(new PropertiesModelSource(properties, resource), request);
return result.getProject().getModel();
} catch (Exception e) {
throw new IllegalStateException("Failed to build model from effective pom", e);
}
}
use of org.apache.maven.project.ProjectBuildingResult in project tycho by eclipse.
the class TargetPlatformFilterConfigurationReaderTest method buildProjectModel.
// TODO share this?
MavenProject buildProjectModel(File pom) throws Exception, ProjectBuildingException {
ProjectBuilder projectBuilder = lookup(ProjectBuilder.class);
List<ProjectBuildingResult> projects = projectBuilder.build(Collections.singletonList(pom), false, projectBuildRequestForUnitTest());
MavenProject project = projects.get(0).getProject();
return project;
}
use of org.apache.maven.project.ProjectBuildingResult in project component-runtime by Talend.
the class ArtifactTransformer method hasTransformedResource.
@Override
public boolean hasTransformedResource() {
artifacts = new ArrayList<>();
final ArtifactFilter filter = getFilter();
if (userArtifacts != null && !userArtifacts.isEmpty()) {
final ArtifactResolver resolver;
final DependencyGraphBuilder graphBuilder;
final ProjectBuilder projectBuilder;
final PlexusContainer container = session.getContainer();
try {
resolver = ArtifactResolver.class.cast(container.lookup(ArtifactResolver.class, "default"));
projectBuilder = ProjectBuilder.class.cast(container.lookup(ProjectBuilder.class, "default"));
graphBuilder = includeTransitiveDependencies ? DependencyGraphBuilder.class.cast(container.lookup(DependencyGraphBuilder.class, "default")) : null;
} catch (final ComponentLookupException e) {
throw new IllegalArgumentException(e);
}
artifacts.addAll(userArtifacts.stream().flatMap(coords -> {
try {
final String type = ofNullable(coords.type).filter(s -> !s.isEmpty()).orElse("jar");
final Artifact art = new DefaultArtifact(coords.groupId, coords.artifactId, coords.version, coords.scope, type, ofNullable(coords.classifier).orElse(""), new DefaultArtifactHandler() {
{
setExtension(type);
}
});
final Artifact artifact = resolver.resolveArtifact(session.getProjectBuildingRequest(), art).getArtifact();
if (includeTransitiveDependencies) {
final DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
try {
final ProjectBuildingResult projectBuildingResult = projectBuilder.build(artifact, true, request);
final DependencyNode transitives = graphBuilder.buildDependencyGraph(projectBuildingResult.getProject(), filter);
final CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor();
transitives.accept(new FilteringDependencyNodeVisitor(visitor, new ArtifactDependencyNodeFilter(filter)));
return Stream.concat(Stream.of(artifact), visitor.getNodes().stream().map(DependencyNode::getArtifact).map(a -> {
try {
return resolver.resolveArtifact(request, a).getArtifact();
} catch (final ArtifactResolverException e) {
throw new IllegalStateException(e);
}
}));
} catch (final ProjectBuildingException | DependencyGraphBuilderException e) {
throw new IllegalStateException(e);
}
}
return Stream.of(artifact);
} catch (final ArtifactResolverException e) {
throw new IllegalArgumentException(e);
}
}).collect(toSet()));
}
if (includeProjectComponentDependencies) {
// this is a weird category of projects but can exist
final MavenProject project = session.getCurrentProject();
if (project.getArtifacts() != null && !project.getArtifacts().isEmpty()) {
project.setArtifactFilter(filter);
try {
artifacts.addAll(project.getArtifacts());
} finally {
// shade plugin uses it OOTB so reset it for the end of the execution (in case
// another transformer needs it)
project.setArtifactFilter(new CumulativeScopeArtifactFilter(singletonList("runtime")));
}
}
}
return !artifacts.isEmpty();
}
Aggregations