2016-07-01 3 views
2

Я пытаюсь сделать что-то, что, по моему мнению, должно быть относительно простым, но ничто в Интернете, кажется, не дает мне то, что я после.Попытка получить имя группы и версию моих зависимостей build.gradle в пользовательской задаче градации

В принципе, я хочу взять зависимости compile/testCompile из своего build.gradle (я не хочу, чтобы какая-либо из зависимостей - буквально так, как они есть в файле), и для каждого из них я хочу что-то сделать с именем группы, именем и версией. Скажем так, я хочу напечатать их.

Так вот мой build.gradle:

dependencies { 
    compile 'org.spring.framework.cloud:spring-cloud-example:1.0.6' 
    compile 'org.spring.framework.cloud:spring-cloud-other-example:1.1.6' 
    testCompile 'org.spring.framework.cloud:spring-cloud-example-test:3.1.2' 
} 

task printDependencies { 
    //some code in here to get results such as... 
    // org.spring.framework.cloud spring-cloud-other-example 1.1.6 
} 

Спасибо всем.

ответ

2

Чтобы перебрать все ваши зависимости, вы можете определить все конфигурации и все зависимости конфигурации. Как так:

task printDependencies { 
    project.configurations.each { conf -> 
     conf.dependencies.each { dep -> 
      println "${dep.group}:${dep.name}:${dep.version}" 
     } 
    } 
} 

Если вам необходимо точно зависимости конфигурации, вы можете получить их по отдельности:

task printDependencies { 
    project.configurations.getByName('compile') { conf -> 
     conf.dependencies.each { dep -> 
      println "${dep.group}:${dep.name}:${dep.version}" 
     } 
    } 

    project.configurations.getByName('testCompile') { conf -> 
     conf.dependencies.each { dep -> 
      println "${dep.group}:${dep.name}:${dep.version}" 
     } 
    } 
} 

Или изменить первый пример, добавив условие для проверки conf.name

+0

Brilliant - спасибо Станиславу! И высшие оценки за то, что так быстро возвращались! – MDalt