1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.api.services;
20
21 import java.nio.file.Path;
22 import java.util.Collection;
23 import java.util.List;
24 import java.util.Optional;
25
26 import org.apache.maven.api.Artifact;
27 import org.apache.maven.api.Project;
28 import org.apache.maven.api.RemoteRepository;
29 import org.apache.maven.api.Service;
30 import org.apache.maven.api.Session;
31 import org.apache.maven.api.annotations.Experimental;
32 import org.apache.maven.api.annotations.Nonnull;
33
34
35
36
37
38
39 @Experimental
40 public interface ProjectManager extends Service {
41
42
43
44
45
46
47 @Nonnull
48 Optional<Path> getPath(Project project);
49
50 @Nonnull
51 Collection<Artifact> getAttachedArtifacts(Project project);
52
53 default void attachArtifact(Session session, Project project, Path path) {
54 String name = path.getFileName().toString();
55 int dot = name.lastIndexOf('.');
56 String ext = dot >= 1 ? name.substring(dot + 1) : "";
57 Artifact artifact =
58 session.createArtifact(project.getGroupId(), project.getArtifactId(), project.getVersion(), ext);
59 attachArtifact(project, artifact, path);
60 }
61
62 default void attachArtifact(Session session, Project project, String type, Path path) {
63 Artifact artifact = session.createArtifact(
64 project.getGroupId(), project.getArtifactId(), project.getVersion(), null, null, type);
65 attachArtifact(project, artifact, path);
66 }
67
68 void attachArtifact(Project project, Artifact artifact, Path path);
69
70 List<String> getCompileSourceRoots(Project project);
71
72 void addCompileSourceRoot(Project project, String sourceRoot);
73
74 List<String> getTestCompileSourceRoots(Project project);
75
76 void addTestCompileSourceRoot(Project project, String sourceRoot);
77
78 List<RemoteRepository> getRepositories(Project project);
79
80 void setProperty(Project project, String key, String value);
81 }