8

我有以下代码:

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
        }
    }
4

3 回答 3

7

这应该可以解决问题:

configuration.getDependencies().add(dependenyMock);
于 2013-09-25T11:45:18.543 回答
4
@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()])))
}
于 2013-09-24T23:05:34.543 回答
3

尝试以这种方式进行:

project.getDependencies().add('compile', project(':common-configuration'))

compile- 配置
:common-configuration名称 - 要添加的项目名称(或任何其他依赖项)

于 2019-03-14T11:08:29.303 回答