Как ссылаться на набор файлов из другой конфигурации подпроектов в gradle

Я хотел бы что-то вроде этого (обратите внимание, что :sub является ссылкой на подпроект)

task deleteJars(type: Delete) {
    ext.collection = files { genLibDir.listFiles() }
    delete ext.collection
}
task copyJars(type: Copy) { 
    from(:sub.configurations.compile) {}
    from(fixedLibDir) {}
    into genLibDir
}
copyJars.dependsOn('deleteJars')
classes.dependsOn('copyJars')

Однако это не компилируется. Для playframework мне нужно получить файлы jar в конфигурации других проектов в мой каталог lib для запуска playframework. Как я могу исправить приведенный выше код?

спасибо, Дин


person Dean Hiller    schedule 16.09.2012    source источник


Ответы (2)


Должно быть что-то вроде:

project(":sub").configurations.compile

?

person Shorn    schedule 17.09.2012
comment
Как упоминалось в zggame, в некоторых случаях, когда ваш подпроект оценивается до вашего подпроекта зависимостей, gradle выдает ошибку. Вы можете отложить оценку, используя замыкание. например: {проект(:sub).configurations.compile} - person EFreak; 30.01.2016

Не забудьте поставить

evaluationDependsOn('sub')

в начале вашего основного скрипта. В противном случае вы получите ошибку, например

 Configuration with name 'compile' not found

Причина в том, что обычно основной проект компилируется до подпроекта, и компилятору трудно найти конфигурацию «компилировать» подпроекта.

person zggame    schedule 25.08.2015