使用 IntelliJ SDK 创建自定义 运行 配置并在启动前部分添加构建任务
Creating a custom run configuration using IntelliJ SDK and adding Build task in Before launch section
我正在学习 IntelliJ IDEA SDK Run Configuration 部分中的教程。
按照教程,我将获得一个带有空 "Before launch" 部分的新配置面板。该部分是默认添加的。
我想默认指定一些目标,即至少在几个插件中完成的构建目标(见下图)
我正在尝试了解具体方法,但找不到任何相关示例或文档。
如何添加默认 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);
}
}
我正在学习 IntelliJ IDEA SDK Run Configuration 部分中的教程。
按照教程,我将获得一个带有空 "Before launch" 部分的新配置面板。该部分是默认添加的。
我想默认指定一些目标,即至少在几个插件中完成的构建目标(见下图)
我正在尝试了解具体方法,但找不到任何相关示例或文档。
如何添加默认 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);
}
}