gpt4 book ai didi

java - 我将如何覆盖独立项目中另一个插件提供的任务? Gradle

转载 作者:行者123 更新时间:2023-12-03 04:09:11 25 4
gpt4 key购买 nike

我正在通过一个独立的项目创建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插件提供)。

最佳答案

要覆盖/自定义processResources插件提供的java,您必须首先:

  • 查找/检索任务
  • 配置任务

  • 您目前正在尝试创建一个自定义任务的任务,这没有任何意义。任务不会自定义其他任务,它们会执行可操作的操作,例如执行测试。

    这是在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
    });
    }
    }

    关于java - 我将如何覆盖独立项目中另一个插件提供的任务? Gradle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62025279/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com