2013-10-22 2 views

답변

1

다음 작품을

class ProjectCategory { 
    static List<Project> topologicallySortedProjectDependencies(Project project) { 
     topologicallySortedProjectDependenciesImpl(project).unique().reverse() 
    } 

    private static List<Project> topologicallySortedProjectDependenciesImpl(Project project) { 
     final dependencies = project.configurations.compile.dependencies.findAll { dependency -> 
      dependency instanceof ProjectDependency 
     } collect { ProjectDependency projectDependency -> 
      topologicallySortedProjectDependenciesImpl(projectDependency.dependencyProject) 
     } flatten() 

     dependencies + project 
    } 
} 

task topologicallySortedProjects << { 
    println project(':').toString().capitalize() 

    use(ProjectCategory) { 
     project.topologicallySortedProjectDependencies().each { projectDependency -> 
      println "+--- ${projectDependency.toString().capitalize()}" 
     } 
    } 
} 
2

토폴로지 정렬을 정의하십시오. subprojects을 참조하여 rootProject의 build.gradle 파일에서 하위 프로젝트 목록을 가져올 수 있습니다. 이처럼 :

subprojects.each { p -> 
    println p.path 
} 

당신은 완전한 이름 (즉 :module:submodule)

내 목적을 위해
+1

HTTP 인 (자신의 경로에 의해 이들을 정렬 할 수 있습니다.. // en.wikipedia.org/wiki/Topological_sorting –

관련 문제