使用IntelliJ SDK创建自定义运行配置并在启动之前部分中添加构建任务

时间:2018-12-27 20:26:30

标签: intellij-idea intellij-plugin

我正在遵循IntelliJ IDEA SDK的Run Configuration部分中的教程。

在学习完本教程之后,我将获得一个带有空的“启动前”部分的新配置面板。该部分是默认添加的。

enter image description here

默认情况下,我想指定一些目标,即至少要在几个插件中完成构建目标(请参见下图)

enter image description here

我试图了解操作方法,但是找不到任何示例或文档。

1 个答案:

答案 0 :(得分:3)

如何添加默认的build任务?

您的运行配置(在示例中为DemoRunConfiguration)应实现RunProfileWithCompileBeforeLaunchOption。该接口不提供任何实现方法,因此这是一种标记。 build任务将自动添加,无需其他步骤。

如何将自己的任务添加到before launch部分?

您的plugin.xml应该包含一行stepsBeforeRunProvider

<stepsBeforeRunProvider implementation="com.MyBeforeRunProvider" id="myBeforeRun"/>

为此,您应该使用“运行前任务”创建“运行前提供程序”。

public class BeforeRunProvider extends BeforeRunTaskProvider<MyBeforeRunTask> {
    @Override
    public Key<MyBeforeRunTask> getId() {
        return Key.create("ThisIsId");
    }

    @Override
    public String getName() {
        return "Nice name";
    }

    @Override
    public String getDescription(MyBeforeRunTask task) {
        return "Description";
    }

    @Nullable
    @Override
    public Icon getIcon() {
        return AllIcons.Actions.Compile;
    }

    @Nullable
    @Override
    public MyBeforeRunTask createTask(@NotNull RunConfiguration runConfiguration) {
        return new MyBeforeRunTask(getId());
    }

    @Override
    public boolean executeTask(@NotNull DataContext dataContext, @NotNull RunConfiguration runConfiguration, @NotNull ExecutionEnvironment executionEnvironment, @NotNull MyBeforeRunTask myBeforeRunTask) {
        return true;
    }
}

任务:

public class MyBeforeRunTask extends BeforeRunTask<MyBeforeRunTask> {

    protected MyBeforeRunTask(@NotNull Key<MyBeforeRunTask> providerId) {
        super(providerId);
        setEnabled(true);
    }
}