Goland(Idea平台)插件开发之版本兼容

前言

在开发完Goland插件后,分享给同事使用的时候就发现了版本的问题,导致无法加载插件。出现的错误大致如下

1
xxx is not compatible with the current version of the IDE

实际上插件在idea api上并没有啥兼容性的问题,只不过idea平台的插件对版本的要求比较严格

探索

通过对插件的解包,可以看到在插件的META-INF/plugin.xml中存在如下描述

1
<idea-version since-build="xxx" until-build="xxx" />

这里的版本就是插件所需的idea版本
那直接在插件源码目录下修改plugin.xml是否有效呢?答案是无效的。加上了这样的描述,生成的插件还是对应当前gradle-intellij-plugin版本。

解决方案

通过查阅文档,答案是在build.gradle文件下添加如下描述

1
2
3
4
 patchPluginXml {
    sinceBuild = 'xxx'
    untilBuild = 'xxx'
}

上述的版本为3位数,前两位是年份,比如从2019版的版本开始兼容sinceBuild填190即可。
比较坑的是idea平台会对小版本也进行校验,我开发插件的时候复制了Goland 2021.1版本作为开发环境,后面自用Goland升级到了 2021.2版本结果也出现了上面的错误。我为了图方便,直接把untilBuild改为了299。不过这样修改还是要在idea api没有变动的前提下进行,不然api变更后这样修改也是徒劳,在插件运行的时候就可能因为api变更而出错。

作者

ZhongHuihong

发布于

2021-08-19

更新于

2021-10-02

许可协议