1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.api;
20
21 import java.nio.file.Path;
22 import java.util.List;
23 import java.util.Optional;
24 import org.apache.maven.api.annotations.Experimental;
25 import org.apache.maven.api.annotations.Nonnull;
26 import org.apache.maven.api.model.Build;
27 import org.apache.maven.api.model.Model;
28
29
30
31
32
33
34
35 @Experimental
36 public interface Project {
37
38 @Nonnull
39 String getGroupId();
40
41 @Nonnull
42 String getArtifactId();
43
44 @Nonnull
45 String getVersion();
46
47 @Nonnull
48 String getPackaging();
49
50 @Nonnull
51 Artifact getArtifact();
52
53 @Nonnull
54 Model getModel();
55
56 @Nonnull
57 default Build getBuild() {
58 Build build = getModel().getBuild();
59 return build != null ? build : Build.newInstance();
60 }
61
62
63
64
65
66
67
68
69 @Nonnull
70 Optional<Path> getPomPath();
71
72 @Nonnull
73 default Optional<Path> getBasedir() {
74 return getPomPath().map(Path::getParent);
75 }
76
77 @Nonnull
78 List<DependencyCoordinate> getDependencies();
79
80 @Nonnull
81 List<DependencyCoordinate> getManagedDependencies();
82
83 @Nonnull
84 default String getId() {
85 return getModel().getId();
86 }
87
88 boolean isExecutionRoot();
89
90 @Nonnull
91 Optional<Project> getParent();
92
93 @Nonnull
94 List<RemoteRepository> getRemoteProjectRepositories();
95
96 @Nonnull
97 List<RemoteRepository> getRemotePluginRepositories();
98 }