Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
MavenProjectBuilder |
|
| 1.0;1 | ||||
MavenProjectBuilder$1 |
|
| 1.0;1 |
1 | package org.apache.maven.project; | |
2 | ||
3 | /* | |
4 | * Licensed to the Apache Software Foundation (ASF) under one | |
5 | * or more contributor license agreements. See the NOTICE file | |
6 | * distributed with this work for additional information | |
7 | * regarding copyright ownership. The ASF licenses this file | |
8 | * to you under the Apache License, Version 2.0 (the | |
9 | * "License"); you may not use this file except in compliance | |
10 | * with the License. You may obtain a copy of the License at | |
11 | * | |
12 | * http://www.apache.org/licenses/LICENSE-2.0 | |
13 | * | |
14 | * Unless required by applicable law or agreed to in writing, | |
15 | * software distributed under the License is distributed on an | |
16 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
17 | * KIND, either express or implied. See the License for the | |
18 | * specific language governing permissions and limitations | |
19 | * under the License. | |
20 | */ | |
21 | ||
22 | import org.apache.maven.artifact.Artifact; | |
23 | import org.apache.maven.artifact.repository.ArtifactRepository; | |
24 | import org.apache.maven.artifact.resolver.ArtifactNotFoundException; | |
25 | import org.apache.maven.artifact.resolver.ArtifactResolutionException; | |
26 | import org.apache.maven.profiles.ProfileManager; | |
27 | import org.apache.maven.project.interpolation.ModelInterpolationException; | |
28 | import org.apache.maven.wagon.events.TransferListener; | |
29 | ||
30 | import java.io.File; | |
31 | import java.util.List; | |
32 | ||
33 | public interface MavenProjectBuilder | |
34 | { | |
35 | 1 | String ROLE = MavenProjectBuilder.class.getName(); |
36 | ||
37 | String STANDALONE_SUPERPOM_GROUPID = "org.apache.maven"; | |
38 | ||
39 | String STANDALONE_SUPERPOM_ARTIFACTID = "super-pom"; | |
40 | ||
41 | String STANDALONE_SUPERPOM_VERSION = "2.0"; | |
42 | ||
43 | MavenProject build( File project, ArtifactRepository localRepository, ProfileManager globalProfileManager ) | |
44 | throws ProjectBuildingException; | |
45 | ||
46 | MavenProject build( File project, ArtifactRepository localRepository, ProfileManager globalProfileManager, | |
47 | boolean checkDistributionManagementStatus ) | |
48 | throws ProjectBuildingException; | |
49 | ||
50 | // ---------------------------------------------------------------------- | |
51 | // These methods are used by the MavenEmbedder | |
52 | // ---------------------------------------------------------------------- | |
53 | ||
54 | MavenProject buildWithDependencies( File project, ArtifactRepository localRepository, | |
55 | ProfileManager globalProfileManager, TransferListener transferListener ) | |
56 | throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException; | |
57 | ||
58 | MavenProject buildWithDependencies( File project, ArtifactRepository localRepository, | |
59 | ProfileManager globalProfileManager ) | |
60 | throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException; | |
61 | ||
62 | // ---------------------------------------------------------------------- | |
63 | // | |
64 | // ---------------------------------------------------------------------- | |
65 | ||
66 | /** | |
67 | * Build the artifact from the local repository, resolving it if necessary. | |
68 | * | |
69 | * @param artifact the artifact description | |
70 | * @param localRepository the local repository | |
71 | * @param remoteArtifactRepositories the remote repository list | |
72 | * @return the built project | |
73 | * @throws ProjectBuildingException | |
74 | */ | |
75 | MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, | |
76 | ArtifactRepository localRepository ) | |
77 | throws ProjectBuildingException; | |
78 | ||
79 | /** | |
80 | * Build the artifact from the local repository, resolving it if necessary. | |
81 | * | |
82 | * @param artifact the artifact description | |
83 | * @param localRepository the local repository | |
84 | * @param remoteArtifactRepositories the remote repository list | |
85 | * @param allowStubModel return a stub if the POM is not found | |
86 | * @return the built project | |
87 | * @throws ProjectBuildingException | |
88 | */ | |
89 | MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, | |
90 | ArtifactRepository localRepository, boolean allowStubModel ) | |
91 | throws ProjectBuildingException; | |
92 | ||
93 | /** | |
94 | * @deprecated Use {@link MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)} instead. | |
95 | */ | |
96 | MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository ) | |
97 | throws ProjectBuildingException; | |
98 | ||
99 | /** | |
100 | * need to pass a profilemanager with correct context (eg. with execution properties) | |
101 | * @deprecated Use {@link MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)} instead. | |
102 | */ | |
103 | MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository, ProfileManager profileManager ) | |
104 | throws ProjectBuildingException; | |
105 | ||
106 | MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config ) | |
107 | throws ProjectBuildingException; | |
108 | ||
109 | MavenProject build( File pom, | |
110 | ProjectBuilderConfiguration config ) | |
111 | throws ProjectBuildingException; | |
112 | ||
113 | MavenProject build( File pom, | |
114 | ProjectBuilderConfiguration config, | |
115 | boolean checkDistributionManagementStatus ) | |
116 | throws ProjectBuildingException; | |
117 | ||
118 | // ---------------------------------------------------------------------------- | |
119 | // API BELOW IS USED TO PRESERVE DYNAMISM IN THE BUILD SECTION OF THE POM. | |
120 | // ---------------------------------------------------------------------------- | |
121 | ||
122 | /** | |
123 | * Variant of {@link MavenProjectBuilder#calculateConcreteState(MavenProject, ProjectBuilderConfiguration, boolean)} | |
124 | * which assumes that project references should be processed. This is provided for performance reasons, for cases | |
125 | * where you know all projects in the reactor will be processed, making traversal of project references unnecessary. | |
126 | */ | |
127 | void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config ) | |
128 | throws ModelInterpolationException; | |
129 | ||
130 | /** | |
131 | * Up to this point, the build section of the POM remains uninterpolated except for the artifact coordinates | |
132 | * it contains. This method will interpolate the build section and associated project-instance data | |
133 | * structures. Along with the {@link MavenProjectBuilder#restoreDynamicState(MavenProject, ProjectBuilderConfiguration, boolean)} | |
134 | * method, this method allows expressions in these areas of the POM and project instance to | |
135 | * be reevaluated in the event that a mojo changes one the build-path values, or a project property. | |
136 | * <br/><br/> | |
137 | * This method will process the following: | |
138 | * <ol> | |
139 | * <li>the specified project's parent project (if not null)</li> | |
140 | * <li>specified project</li> | |
141 | * <li>its execution project (if not null)</li> | |
142 | * <li>any project references (iff processReferences == true)</li> | |
143 | * </ol> | |
144 | */ | |
145 | void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config, boolean processReferences ) | |
146 | throws ModelInterpolationException; | |
147 | ||
148 | // /** | |
149 | // * Variant of {@link MavenProjectBuilder#restoreDynamicState(MavenProject, ProjectBuilderConfiguration, boolean)} | |
150 | // * which assumes that project references should be processed. This is provided for performance reasons, for cases | |
151 | // * where you know all projects in the reactor will be processed, making traversal of project references unnecessary. | |
152 | // */ | |
153 | // void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config ) | |
154 | // throws ModelInterpolationException; | |
155 | // | |
156 | // /** | |
157 | // * In the event that a mojo execution has changed one or more build paths, or changed the project properties, | |
158 | // * this method can restore the build section of the POM to its uninterpolated form, to allow reevaluation of | |
159 | // * any expressions that may depend on this changed information. This method will short-circuit if the project | |
160 | // * is not in a concrete state (see {@link MavenProjectBuilder#calculateConcreteState(MavenProject, ProjectBuilderConfiguration, boolean)} | |
161 | // * or if the properties and build paths of the project remain unchanged. | |
162 | // * <br/><br/> | |
163 | // * This method will process the following: | |
164 | // * <ol> | |
165 | // * <li>the specified project's parent project (if not null)</li> | |
166 | // * <li>specified project</li> | |
167 | // * <li>its execution project (if not null)</li> | |
168 | // * <li>any project references (iff processReferences == true)</li> | |
169 | // * </ol> | |
170 | // */ | |
171 | // void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config, boolean processReferences ) | |
172 | // throws ModelInterpolationException; | |
173 | } |