Версия Pull Dependency из плагина управления Spring-зависимостями - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть Gradle Task, чтобы извлечь зависимости из проекта и поиграть с этими данными.Ниже мой Gradle Task

task gavValidation() {

    doLast {
        project(':app').configurations.each { 
            configurationType ->
            println "configurationType >>> "+configurationType.name
            configurationType.allDependencies.each {
                gav ->
                println gav.group+" : "+gav.name+" : "+gav.version
            }
        }
    }

}

Оператор print всегда отображается как null, когда он печатает gav.version выше.

Я обнаружил, что версииэти зависимости поддерживаются в Spring Dependency Management Plugin.Ниже приведен фрагмент

apply plugin: 'io.spring.dependency-management'
    dependencyManagement {
        imports {
            mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Edgware.RELEASE'
            mavenBom 'io.pivotal.spring.cloud:spring-cloud-services-dependencies:1.5.0.RELEASE'
            mavenBom 'org.springframework.boot:spring-boot-dependencies:1.5.13.RELEASE'

        }
        dependencies {
            dependency 'io.springfox:springfox-swagger2:2.8.0'
            dependency 'io.springfox:springfox-swagger-ui:2.8.0'

        }
    }

Как получить версию в моей пользовательской задаче?который в настоящее время идет как ноль

1 Ответ

0 голосов
/ 24 сентября 2018

Как объяснено в Работа с зависимостями , методы Configuration.getDependencies() или Configuration.getAllDependencies() только возвращают объявленные зависимости и не запускают разрешение зависимостей.Таким образом, для зависимостей, поступающих из Spring BOM, версия еще не известна.

Вместо этого можно использовать метод Configuration.getResolvedConfiguration(), как показано ниже:

task gavValidation() {
    doLast {
        configurations.each { configurationType ->
            println " ***************** configurationType >>> " + configurationType.name
            if (configurationType.canBeResolved) {
                configurationType.getResolvedConfiguration().getResolvedArtifacts().each { artefact ->
                    ModuleVersionIdentifier id = artefact.getModuleVersion().getId()
                    println id.group + " : " + id.name + " : " + id.version
                }
            }
        }
    }
}
...