Как мне go переопределить задачу, предоставленную другим плагином в автономном проекте? Gradle - PullRequest
1 голос
/ 26 мая 2020

Я работаю над созданием плагина Gradle через отдельный проект. Для одной из задач моего плагина я хотел бы переопределить или добавить задачу, предоставленную плагином java (processResources). Есть ли способ сделать это в отдельном проекте? Я видел, как это было переопределено непосредственно в файле build.gradle, но есть ли способ переопределить его в классе задачи?

Например, класс задачи:

class Process extends DefaultTask {
    @TaskAction
    void process() {
        project.processResources {
           // I tried overriding this way with no prevail.
        }
    }
}

Я бы например, переопределенная версия для запуска каждый раз, когда выполняется моя задача :boot или :bootWar (которая предоставляется плагином spring.

1 Ответ

0 голосов
/ 27 мая 2020

Чтобы переопределить / настроить предоставленный processResources, предоставленный плагином java, вы должны сначала:

  1. Найти / получить задачу
  2. Настроить задачу

То, что вы пытаетесь сделать в данный момент, - это создать задачу, которая настраивает задачу, что не имеет смысла. Задачи не настраивают другие задачи, они выполняют действенные действия, такие как выполнение тестов.

Вот пример плагина, который выполняет вышеуказанные шаги в Java:

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.language.jvm.tasks.ProcessResources;

public class ExamplePlugin implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        project.getTasks().named(JavaPlugin.PROCESS_RESOURCES_TASK_NAME, ProcessResources.class, (processResources) -> {
            processResources.from("....."); // configure the task in the lambda
        });
    }
}
...