Package org.apache.maven.project
Class ProjectSorter
java.lang.Object
org.apache.maven.project.ProjectSorter
ProjectSorter
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.codehaus.plexus.util.dag.DAG
private Map<String,
MavenProject> private List<MavenProject>
private MavenProject
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addEdge
(Map<String, MavenProject> projectMap, Map<String, Map<String, org.codehaus.plexus.util.dag.Vertex>> vertexMap, MavenProject project, org.codehaus.plexus.util.dag.Vertex projectVertex, String groupId, String artifactId, String version, boolean force, boolean safe) private void
addEdge
(org.codehaus.plexus.util.dag.Vertex fromVertex, org.codehaus.plexus.util.dag.Vertex toVertex, MavenProject fromProject, Map<String, MavenProject> projectMap, boolean force, boolean safe) org.codehaus.plexus.util.dag.DAG
getDAG()
getDependents
(String id) static String
getId
(MavenProject project) boolean
private boolean
isSpecificVersion
(String version)
-
Field Details
-
dag
private org.codehaus.plexus.util.dag.DAG dag -
sortedProjects
-
projectMap
-
topLevelProject
-
-
Constructor Details
-
ProjectSorter
public ProjectSorter(Collection<MavenProject> projects) throws org.codehaus.plexus.util.dag.CycleDetectedException, DuplicateProjectException Sort a list of projects.- collect all the vertices for the projects that we want to build.
- iterate through the deps of each project and if that dep is within the set of projects we want to build then add an edge, otherwise throw the edge away because that dependency is not within the set of projects we are trying to build. we assume a closed set.
- do a topo sort on the graph that remains.
- Throws:
DuplicateProjectException
- if any projects are duplicated by idorg.codehaus.plexus.util.dag.CycleDetectedException
-
-
Method Details
-
addEdge
private void addEdge(Map<String, MavenProject> projectMap, Map<String, throws org.codehaus.plexus.util.dag.CycleDetectedExceptionMap<String, org.codehaus.plexus.util.dag.Vertex>> vertexMap, MavenProject project, org.codehaus.plexus.util.dag.Vertex projectVertex, String groupId, String artifactId, String version, boolean force, boolean safe) - Throws:
org.codehaus.plexus.util.dag.CycleDetectedException
-
addEdge
private void addEdge(org.codehaus.plexus.util.dag.Vertex fromVertex, org.codehaus.plexus.util.dag.Vertex toVertex, MavenProject fromProject, Map<String, MavenProject> projectMap, boolean force, boolean safe) throws org.codehaus.plexus.util.dag.CycleDetectedException- Throws:
org.codehaus.plexus.util.dag.CycleDetectedException
-
isSpecificVersion
-
getTopLevelProject
-
getSortedProjects
-
hasMultipleProjects
public boolean hasMultipleProjects() -
getDependents
-
getDependencies
-
getId
-
getDAG
public org.codehaus.plexus.util.dag.DAG getDAG() -
getProjectMap
-