gpt4 book ai didi

java - 在编写 Gradle 插件时,有没有办法始终在检查阶段运行任务?

转载 作者:行者123 更新时间:2023-12-02 11:47:15 24 4
gpt4 key购买 nike

我正在尝试编写一个 gradle 插件,到目前为止或多或少已经取得了成功。此时可以在应用该任务的任何项目中使用“gradle myTask”执行该任务。

但是,我希望在每次构建期间执行该任务(确切地说是在“检查”阶段)。在项目方面,通过添加以下内容非常容易:

check {
dependsOn myTask
}

很容易。我想做的是在插件端应用相同的行为,因此无论插件应用到哪个项目,任务总是在检查阶段执行。

我正在考虑类似于此的代码:

TaskContainer tasks = project.getTasks();

MyTask myTask = tasks.create(TASK_NAME, MyTask.class);

Task checkTask = tasks.findByPath("check");

if(checkTask != null) {
checkTask.dependsOn(myTask);
}

不幸的是,这不起作用。检查阶段运行,没有错误,但 myTask 从未执行。

最佳答案

没有名为 check 的阶段,只有一个名为 check 的任务,当您自己添加它或应用诸如 for 之类的插件时,它会添加到项目中添加此任务的示例 java

我假设您在应用添加 check 任务的插件之前应用您的插件,因此您的 null 检查失败并且不添加依赖项。

您可以要求在添加 check 任务的插件之后应用您的插件,或者您需要使您的插件更加灵活。 G。通过做类似的事情

if (checkTask != null) {
checkTask.dependsOn(myTask);
} else {
tasks.whenTaskAdded(task -> {
if ("check".equals(task.getName())) {
task.dependsOn(myTask);
}
});
}

关于java - 在编写 Gradle 插件时,有没有办法始终在检查阶段运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48110206/

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