Настройка задачи Zip / копирования в плагине с помощью Gradle

#gradle #gradle-plugin

#gradle #gradle-плагин

Вопрос:

Я пытаюсь создать Zip задачу в плагине:

 class MyPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {

        Zip buildFunctionArchive = project.tasks.create("buildFunctionArchive", Zip.class) {

            archiveClassifier = "yolo"
            from(project.getTasksByName("compileJava", true))
        }
    }
}
  

Но по какой-то причине, несмотря compileJava на то, что задача существует в форме проекта, которую я использую в своем плагине. Когда я печатаю вывод отладки, я получаю: NO-SOURCE

 2020-10-05T02:16:03.565 1100 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :buildFunctionArchive NO-SOURCE
  

Если я настрою from в своем клиентском проекте:

 buildFunctionArchive{
    from compileJava
}
  

Это работает, и я даже вижу yolo в имени архива. Но если я удалю from compileJava

 buildFunctionArchive{
}
  

А также удалите всю конфигурацию вместе и запустите gradle buildFunctionArchive
Задача не создаст архив, даже если я настроил это в MyPlugin классе, я получу сообщение об NO-SOURCE ошибке. Чего мне не хватает? Я хочу определить Zip задачу в своем плагине, но мне не повезло.

Комментарии:

1. Вы когда-нибудь это понимали? Я столкнулся с аналогичной проблемой…