Package org.apache.maven.project
Class DefaultProjectBuilder
- java.lang.Object
-
- org.apache.maven.project.DefaultProjectBuilder
-
- All Implemented Interfaces:
ProjectBuilder
@Component(role=ProjectBuilder.class) public class DefaultProjectBuilder extends java.lang.Object implements ProjectBuilder
DefaultProjectBuilder
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
DefaultProjectBuilder.InterimResult
(package private) class
DefaultProjectBuilder.InternalConfig
InternalConfig
-
Field Summary
Fields Modifier and Type Field Description private ProjectDependenciesResolver
dependencyResolver
static java.lang.String
DISABLE_GLOBAL_MODEL_CACHE_SYSTEM_PROPERTY
private org.codehaus.plexus.logging.Logger
logger
private ModelBuilder
modelBuilder
private ModelCacheFactory
modelCacheFactory
private ModelProcessor
modelProcessor
private ProjectBuildingHelper
projectBuildingHelper
private org.eclipse.aether.impl.RemoteRepositoryManager
repositoryManager
private MavenRepositorySystem
repositorySystem
private org.eclipse.aether.RepositorySystem
repoSystem
-
Constructor Summary
Constructors Constructor Description DefaultProjectBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private ProjectBuildingResult
build(java.io.File pomFile, ModelSource modelSource, DefaultProjectBuilder.InternalConfig config)
ProjectBuildingResult
build(java.io.File pomFile, ProjectBuildingRequest request)
Builds a project descriptor from the specified POM file.java.util.List<ProjectBuildingResult>
build(java.util.List<java.io.File> pomFiles, boolean recursive, ProjectBuildingRequest request)
Builds the projects for the specified POM files and optionally their children.private boolean
build(java.util.List<ProjectBuildingResult> results, java.util.List<DefaultProjectBuilder.InterimResult> interimResults, java.util.Map<java.lang.String,MavenProject> projectIndex, java.io.File pomFile, java.util.Set<java.io.File> aggregatorFiles, boolean isRoot, boolean recursive, DefaultProjectBuilder.InternalConfig config)
private boolean
build(java.util.List<ProjectBuildingResult> results, java.util.List<DefaultProjectBuilder.InterimResult> interimResults, java.util.Map<java.lang.String,MavenProject> projectIndex, java.util.List<java.io.File> pomFiles, java.util.Set<java.io.File> aggregatorFiles, boolean isRoot, boolean recursive, DefaultProjectBuilder.InternalConfig config)
private boolean
build(java.util.List<ProjectBuildingResult> results, java.util.List<MavenProject> projects, java.util.Map<java.lang.String,MavenProject> projectIndex, java.util.List<DefaultProjectBuilder.InterimResult> interimResults, ProjectBuildingRequest request, java.util.Map<java.io.File,java.lang.Boolean> profilesXmls, org.eclipse.aether.RepositorySystemSession session)
ProjectBuildingResult
build(Artifact artifact, boolean allowStubModel, ProjectBuildingRequest request)
Builds a project descriptor for the specified artifact.ProjectBuildingResult
build(Artifact artifact, ProjectBuildingRequest request)
Builds a project descriptor for the specified artifact.ProjectBuildingResult
build(ModelSource modelSource, ProjectBuildingRequest request)
Builds a project descriptor for the specified model source.private ModelCache
createModelCache(org.eclipse.aether.RepositorySystemSession session)
private ModelSource
createStubModelSource(Artifact artifact)
private java.lang.String
findProfilesXml(ModelBuildingResult result, java.util.Map<java.io.File,java.lang.Boolean> profilesXmls)
private ModelBuildingRequest
getModelBuildingRequest(DefaultProjectBuilder.InternalConfig config)
private java.util.List<java.lang.String>
getProfileIds(java.util.List<Profile> profiles)
private static java.lang.String
inheritedGroupId(ModelBuildingResult result, int modelIndex)
private static java.lang.String
inheritedVersion(ModelBuildingResult result, int modelIndex)
private void
initParent(MavenProject project, java.util.Map<java.lang.String,MavenProject> projects, boolean buildParentIfNotExisting, ModelBuildingResult result, ProjectBuildingRequest projectBuildingRequest)
private void
initProject(MavenProject project, java.util.Map<java.lang.String,MavenProject> projects, boolean buildParentIfNotExisting, ModelBuildingResult result, java.util.Map<java.io.File,java.lang.Boolean> profilesXmls, ProjectBuildingRequest projectBuildingRequest)
private void
populateReactorModelPool(ReactorModelPool reactorModelPool, java.util.List<DefaultProjectBuilder.InterimResult> interimResults)
private DependencyResolutionResult
resolveDependencies(MavenProject project, org.eclipse.aether.RepositorySystemSession session)
private boolean
useGlobalModelCache()
-
-
-
Field Detail
-
DISABLE_GLOBAL_MODEL_CACHE_SYSTEM_PROPERTY
public static final java.lang.String DISABLE_GLOBAL_MODEL_CACHE_SYSTEM_PROPERTY
- See Also:
- Constant Field Values
-
logger
@Requirement private org.codehaus.plexus.logging.Logger logger
-
modelBuilder
@Requirement private ModelBuilder modelBuilder
-
modelProcessor
@Requirement private ModelProcessor modelProcessor
-
projectBuildingHelper
@Requirement private ProjectBuildingHelper projectBuildingHelper
-
repositorySystem
@Requirement private MavenRepositorySystem repositorySystem
-
repoSystem
@Requirement private org.eclipse.aether.RepositorySystem repoSystem
-
repositoryManager
@Requirement private org.eclipse.aether.impl.RemoteRepositoryManager repositoryManager
-
dependencyResolver
@Requirement private ProjectDependenciesResolver dependencyResolver
-
modelCacheFactory
@Requirement private ModelCacheFactory modelCacheFactory
-
-
Method Detail
-
build
public ProjectBuildingResult build(java.io.File pomFile, ProjectBuildingRequest request) throws ProjectBuildingException
Description copied from interface:ProjectBuilder
Builds a project descriptor from the specified POM file.- Specified by:
build
in interfaceProjectBuilder
- Parameters:
pomFile
- The POM file to build the project from, must not benull
.request
- The project building request that holds further parameters, must not benull
.- Returns:
- The result of the project building, never
null
. - Throws:
ProjectBuildingException
- If the project descriptor could not be successfully built.
-
useGlobalModelCache
private boolean useGlobalModelCache()
-
build
public ProjectBuildingResult build(ModelSource modelSource, ProjectBuildingRequest request) throws ProjectBuildingException
Description copied from interface:ProjectBuilder
Builds a project descriptor for the specified model source.- Specified by:
build
in interfaceProjectBuilder
- Parameters:
modelSource
- The source of the model to built the project descriptor from, must not benull
.request
- The project building request that holds further parameters, must not benull
.- Returns:
- The result of the project building, never
null
. - Throws:
ProjectBuildingException
- If the project descriptor could not be successfully built.- See Also:
ModelSource2
-
build
private ProjectBuildingResult build(java.io.File pomFile, ModelSource modelSource, DefaultProjectBuilder.InternalConfig config) throws ProjectBuildingException
- Throws:
ProjectBuildingException
-
resolveDependencies
private DependencyResolutionResult resolveDependencies(MavenProject project, org.eclipse.aether.RepositorySystemSession session)
-
getProfileIds
private java.util.List<java.lang.String> getProfileIds(java.util.List<Profile> profiles)
-
getModelBuildingRequest
private ModelBuildingRequest getModelBuildingRequest(DefaultProjectBuilder.InternalConfig config)
-
build
public ProjectBuildingResult build(Artifact artifact, ProjectBuildingRequest request) throws ProjectBuildingException
Description copied from interface:ProjectBuilder
Builds a project descriptor for the specified artifact.- Specified by:
build
in interfaceProjectBuilder
- Parameters:
artifact
- The POM artifact to build the project from, must not benull
.request
- The project building request that holds further parameters, must not benull
.- Returns:
- The result of the project building, never
null
. - Throws:
ProjectBuildingException
- If the project descriptor could not be successfully built.
-
build
public ProjectBuildingResult build(Artifact artifact, boolean allowStubModel, ProjectBuildingRequest request) throws ProjectBuildingException
Description copied from interface:ProjectBuilder
Builds a project descriptor for the specified artifact.- Specified by:
build
in interfaceProjectBuilder
- Parameters:
artifact
- The POM artifact to build the project from, must not benull
.allowStubModel
- A flag controlling the case of a missing POM artifact. Iftrue
and the specified POM artifact does not exist, a simple stub model will be returned. Iffalse
, an exception will be thrown.request
- The project building request that holds further parameters, must not benull
.- Returns:
- The result of the project building, never
null
. - Throws:
ProjectBuildingException
- If the project descriptor could not be successfully built.
-
createStubModelSource
private ModelSource createStubModelSource(Artifact artifact)
-
build
public java.util.List<ProjectBuildingResult> build(java.util.List<java.io.File> pomFiles, boolean recursive, ProjectBuildingRequest request) throws ProjectBuildingException
Description copied from interface:ProjectBuilder
Builds the projects for the specified POM files and optionally their children.- Specified by:
build
in interfaceProjectBuilder
- Parameters:
pomFiles
- The POM files to build, must not benull
.recursive
-true
to recursively build sub modules referenced by the POM files,false
to build only the specified POM files.request
- The project builder configuration that provides further parameters, must not benull
.- Returns:
- The results of the project builder where each result corresponds to one project that was built, never
null
. - Throws:
ProjectBuildingException
- If an error was encountered during building of any project.ProjectBuildingException.getResults()
provides access to the details of the problems.
-
build
private boolean build(java.util.List<ProjectBuildingResult> results, java.util.List<DefaultProjectBuilder.InterimResult> interimResults, java.util.Map<java.lang.String,MavenProject> projectIndex, java.util.List<java.io.File> pomFiles, java.util.Set<java.io.File> aggregatorFiles, boolean isRoot, boolean recursive, DefaultProjectBuilder.InternalConfig config)
-
build
private boolean build(java.util.List<ProjectBuildingResult> results, java.util.List<DefaultProjectBuilder.InterimResult> interimResults, java.util.Map<java.lang.String,MavenProject> projectIndex, java.io.File pomFile, java.util.Set<java.io.File> aggregatorFiles, boolean isRoot, boolean recursive, DefaultProjectBuilder.InternalConfig config)
-
populateReactorModelPool
private void populateReactorModelPool(ReactorModelPool reactorModelPool, java.util.List<DefaultProjectBuilder.InterimResult> interimResults)
-
build
private boolean build(java.util.List<ProjectBuildingResult> results, java.util.List<MavenProject> projects, java.util.Map<java.lang.String,MavenProject> projectIndex, java.util.List<DefaultProjectBuilder.InterimResult> interimResults, ProjectBuildingRequest request, java.util.Map<java.io.File,java.lang.Boolean> profilesXmls, org.eclipse.aether.RepositorySystemSession session)
-
initProject
private void initProject(MavenProject project, java.util.Map<java.lang.String,MavenProject> projects, boolean buildParentIfNotExisting, ModelBuildingResult result, java.util.Map<java.io.File,java.lang.Boolean> profilesXmls, ProjectBuildingRequest projectBuildingRequest)
-
initParent
private void initParent(MavenProject project, java.util.Map<java.lang.String,MavenProject> projects, boolean buildParentIfNotExisting, ModelBuildingResult result, ProjectBuildingRequest projectBuildingRequest)
-
inheritedGroupId
private static java.lang.String inheritedGroupId(ModelBuildingResult result, int modelIndex)
-
inheritedVersion
private static java.lang.String inheritedVersion(ModelBuildingResult result, int modelIndex)
-
findProfilesXml
private java.lang.String findProfilesXml(ModelBuildingResult result, java.util.Map<java.io.File,java.lang.Boolean> profilesXmls)
-
createModelCache
private ModelCache createModelCache(org.eclipse.aether.RepositorySystemSession session)
-
-