You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IntelliJ IDEA同步时触发自定义Gradle任务?

如何在IntelliJ IDEA打开项目或点击「同步」按钮后自动执行Gradle任务?

我想在用户打开IntelliJ IDEA项目,或者点击IDE里的「同步」按钮后,自动执行指定的Gradle任务,但目前找不到可靠的实现方式——因为IDEA同步时不会触发常规的Gradle任务执行流程。

我试过以下方法:

// build.gradle
// 文件中只有以下内容
tasks.create("asd") {
    doLast {
        println("ASD")
    }
    doFirst {
        println("ASD")
    }
}
tasks.all { Task task ->
    task.dependsOn(tasks.named("asd").get())
}

点击同步按钮后,只得到如下输出:

BUILD SUCCESSFUL in 118ms

我找到一个临时方案:通过检查IDEA同步时添加的系统属性,修改Gradle启动参数来触发任务,代码如下:

class LocalPropertiesPlugin implements Plugin<Project> {
    @Override
    public void apply(@NotNull Project target) {
        Idea.scheduleTaskAfterIDEASync(target, "mytask");
    }

    private static void scheduleTaskAfterIDEASync(Project target, String taskName) {
        if (isIdeaSync()) modifyGradleStartParameters(target, taskName);
    }

    private static void modifyGradleStartParameters(Project target, String taskName) {
        final StartParameter startParameter = target.getGradle().getStartParameter();
        System.out.println(startParameter);
        final List<TaskExecutionRequest> taskRequests = new ArrayList<>(startParameter.getTaskRequests());
        taskRequests.add(new DefaultTaskExecutionRequest(List.of(taskName)));
        startParameter.setTaskRequests(taskRequests);
    }

    private static boolean isIdeaSync() {
        return Boolean.parseBoolean(System.getProperty("idea.sync.active", "false"));
    }
}

但这个方案看起来不够理想且不可靠,请问正确的实现方式是什么?


内容的提问来源于stack exchange,提问作者RareScrap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 19:02:39