我有以下代码:
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
}
我想测试一下。到目前为止,我有:
@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}"
}
}
}
如何在配置中添加依赖项?以下不起作用:
final Project subproject = ProjectBuilder.builder().build()
configurations.configuration0 {
subproject
}
configurations.configuration1 {
allDependencies {
subproject
}
}
答案 0 :(得分:5)
这应该可以解决问题:
configuration.getDependencies().add(dependenyMock);
答案 1 :(得分:3)
@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()])))
}
答案 2 :(得分:1)
尝试通过这种方式做到这一点:
project.getDependencies().add('compile', project(':common-configuration'))
compile
-配置名称
:common-configuration
-要添加的项目的名称(或任何其他依赖项)