2017-02-15 10 views
0

Я установил buildDir в build.gradle, и все, кроме одного плагина, соблюдают эту настройку. Для того, кто настаивает на создании build/reports/license/ и размещении его выходов там, я хотел бы переместить эти файлы на мой ${buildDir}.Gradle: как перемещать выходы задачи?

Я попытался добавить doLast блок к задаче

downloadLicenses { 
    // ... 
    doLast { 
     file("build/reports/license").renameTo("${buildDir}/reports"); 
    } 
} 

но Gradle жалуется

Не удалось найти метод doLast() для аргументов [build_3s5ts0z1u2ed2z2xpd2pa56i $ _run_closure50 $ _closure144 @ 4d98efa4] на корень проекте 'мой проект'.

Что мне здесь не хватает и как я могу перемещать файлы после выполнения задачи?

Редактировать: Плагин в вопросе License Gradle Plugin, и я сделал report this as a bug. Я надеюсь на обходной путь, пока это официально не будет зафиксировано.

ответ

2

Какой плагин это?

Попробуйте следующее

println downloadLicenses.class.name 

Это печать имя задачи? Я предполагаю, что есть объект расширение имени downloadLicenses, а не задачи

Если предположить, что есть downloadLicenses задача, которая является «скрытым» по downloadLicenses объекта расширения, это должно работать

tasks.getByName('downloadLicenses').doLast { ... } 

Если «построить» каталог жестко запрограммированный, вы должны поднять вопрос с автором плагина

+0

Спасибо, поставив 'task.getByName ('downloadLicenses')' перед моим блоком 'doLast' в' downloadLicenses', решила проблему. – Robert

0

Я не уверен, что понял ваш вопрос, но, если вы хотите переместить файл в $ {buildDir}/отчеты, я думаю, это должно быть вашим doLast блок:

doLast { 
    file("build/reports/license").renameTo(file("${buildDir}/reports")); 
} 

Я надеюсь, что помогаю вам!

+0

Ну, да, это то, о чем я думал, но это вызывает мне ошибку выше. – Robert

+0

Получаете ли вы ту же ошибку даже с файлом перед вторым путем? Потому что в вашем первом посте не было. – delca85

+0

Да, я ... если бы речь шла о 'файле (...)' ошибка, вероятно, была бы совсем другой. Gradle не нравится 'doLast'. – Robert