Class ProjectSorter

java.lang.Object
org.apache.maven.project.ProjectSorter

public class ProjectSorter extends Object
ProjectSorter
  • Field Details

  • 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 id
      org.codehaus.plexus.util.dag.CycleDetectedException
  • Method Details

    • addEdge

      private 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) throws org.codehaus.plexus.util.dag.CycleDetectedException
      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

      private boolean isSpecificVersion(String version)
    • getTopLevelProject

      public MavenProject getTopLevelProject()
    • getSortedProjects

      public List<MavenProject> getSortedProjects()
    • hasMultipleProjects

      public boolean hasMultipleProjects()
    • getDependents

      public List<String> getDependents(String id)
    • getDependencies

      public List<String> getDependencies(String id)
    • getId

      public static String getId(MavenProject project)
    • getDAG

      public org.codehaus.plexus.util.dag.DAG getDAG()
    • getProjectMap

      public Map<String,MavenProject> getProjectMap()