1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.project;
20
21 import java.io.File;
22 import java.io.FileNotFoundException;
23 import java.net.URISyntaxException;
24 import java.util.Collections;
25
26 import org.apache.maven.artifact.Artifact;
27 import org.apache.maven.artifact.repository.ArtifactRepository;
28 import org.codehaus.plexus.component.annotations.Component;
29
30 @Component(role = ProjectBuilder.class, hint = "classpath")
31 public class TestProjectBuilder extends DefaultProjectBuilder {
32
33 @Override
34 public ProjectBuildingResult build(Artifact artifact, ProjectBuildingRequest request)
35 throws ProjectBuildingException {
36 if ("maven-test".equals(artifact.getGroupId())) {
37 String scope = artifact.getArtifactId().substring("scope-".length());
38
39 try {
40 artifact.setFile(ProjectClasspathTest.getFileForClasspathResource(
41 ProjectClasspathTest.dir + "transitive-" + scope + "-dep.xml"));
42 } catch (FileNotFoundException | URISyntaxException e) {
43 throw new IllegalStateException("Missing test POM for " + artifact);
44 }
45 }
46 if (artifact.getFile() == null) {
47 MavenProject project = new MavenProject();
48 project.setArtifact(artifact);
49 return new DefaultProjectBuildingResult(project, null, null);
50 }
51 return build(artifact.getFile(), request);
52 }
53
54 @Override
55 public ProjectBuildingResult build(File pomFile, ProjectBuildingRequest configuration)
56 throws ProjectBuildingException {
57 ProjectBuildingResult result = super.build(pomFile, configuration);
58
59 result.getProject().setRemoteArtifactRepositories(Collections.<ArtifactRepository>emptyList());
60
61 return result;
62 }
63 }