2013-09-24 12 views
5

Ich habe den folgenden Code:Wie programmgesteuerte Abhängigkeiten zu Gradle-Konfiguration hinzufügen?

static def getFamilyDependencies(ConfigurationContainer configurations) { 
    def result = configurations.collect { configuration -> 
     configuration.allDependencies.findAll { dependency -> 
      dependency instanceof DefaultProjectDependency 
     } collect { projectDependency -> 
      projectDependency.dependencyProject.name 
     } 
    } flatten() 

    result as Set 
} 

und ich würde es testen möchte. Bisher habe ich:

@Test 
void shouldGetFamilyDependencies() { 
    final Project project = ProjectBuilder.builder().build() 

    final configurations = project.getConfigurations() 

    configurations.create('configuration0') 
    configurations.create('configuration1') 

    configurations.each { configuration -> 
     println "***************** ${configuration}" 

     configuration.allDependencies.each { 
      println "@@@@@@@@@@@@@@@@@ ${it}" 
     } 
    } 
} 

Wie füge ich Abhängigkeiten zu den Konfigurationen hinzu? Die folgende funktioniert nicht:

final Project subproject = ProjectBuilder.builder().build() 
    configurations.configuration0 { 
     subproject 
    } 
    configurations.configuration1 { 
     allDependencies { 
      subproject 
     } 
    } 

Antwort

2
@Test 
void shouldGetFamilyDependenciesAcrossAllConfigurations() { 
    final expected = ['subproject-0', 'subproject-1'] 

    final Project project = ProjectBuilder.builder().build() 
    final configurations = project.getConfigurations() 

    configurations.create('configuration-0') 
    final Project subproject0 = ProjectBuilder.builder().withName(expected[0]).build() 
    project.dependencies { 
     delegate.'configuration-0'(subproject0) 
    } 

    configurations.create('configuration-1') 
    final Project subproject1 = ProjectBuilder.builder().withName(expected[1]).build() 
    project.dependencies { 
     delegate.'configuration-1'(subproject1) 
    } 

    final actual = RestorePublishedArtifactTask.getFamilyDependencies(configurations) 

    assertThat(actual, hasItems(expected.toArray(new String[expected.size()]))) 
} 
4

Dies sollte den Trick:

configuration.getDependencies().add(dependenyMock); 
+0

Wie kann ich subproject0 in eine Abhängigkeit verwandeln, die in übergeben werden kann 'add()'? –

Verwandte Themen