2014-12-12 3 views
3

Невозможно получить зависимые подпроекты в файле корневой сборки. По некоторым причинам они не инициализируются. Есть ли возможность получить список зависимостей от project1 например внутри корень?Получить зависимости от подпроекта внутри корневого проекта

Pls see copyToLib Задача. Он должен возвращать значения от зависимых секций от project1, но на самом деле это не так.

Gradle версия 2,0

Root 
| 
|-project1 
| |-build.gradle 
|-project2 
| |-build.gradle 
|-core1 
| |-build.gradle 
|-core2 
| |-build.gradle 
|-build.gradle 
|-settings.gradle 

settings.gradle

include 'project1','project2','core1','core2' 
rootProject.name="Root" 

project1: build.gradle

version = '0.1' 
dependencies { 
    compile project(':core1'), 
      project(':core2'), 
      'org.springframework:spring-web:4.0.6.RELEASE' 
} 

корень: build.gradle

subprojects{ 
    apply plugin: 'java' 
    apply plugin: 'eclipse' 
    apply from: "${rootProject.projectDir}/eclipse.gradle" 
    sourceCompatibility = 1.7 
    repositories { 
     mavenCentral() 
    } 
    task copyToLib(type: Copy) { 
     def deps = project.configurations.compile.getAllDependencies().withType(ProjectDependency) 
     for (dep in deps) { 
      println dep.getDependencyProject().projectDir 
     } 
    } 
    build.dependsOn(copyToLib) 
} 
+0

Я также ищу ответ для этого. Не могли бы вы найти решение? – Leandro

ответ

1

Когда project переменная используется в subprojects это относится к проекту в тока - в этом конкретном случае - корень.

Вы должны удалить добавление задачи из subprojects закрытия и добавьте следующий фрагмент кода:

subprojects.each { p -> 
    configure(p) { 
    task copyToLib << { 
     def deps = p.configurations.compile.allDependencies.withType(ProjectDependency) 
     for (dep in deps) { 
      println dep.getDependencyProject().projectDir 
     } 
     } 
     p.build.dependsOn(copyToLib) 
    } 
} 

упростил задачу (это не относится к типу Copy) - Вы должны различать действия задачи от конфигурации.

+0

@xrabbit - он решает проблему? – Opal

Смежные вопросы