通过gradle开发idea插件,环境版本适配

本文建立在读者已经了解如何使用gradle来开发idea插件的基础上,下面进入正题

在我开发插件期间,饱受版本适配的痛苦,开发过插件的人应该知道,idea有多个版本,从2019至2022,期间多个主要版本,各个版本差异巨大。要想插件可以在所有的版本上运行,解决兼容问题必不可少。使用 Java 语言开发idea插件,那么需要3个基础的依赖, jdk,gradle,org.jetbrains.intellij,只有这个三个依赖互相配合,才能解决兼容性问题。
下面是我踩坑之后,总结的版本兼容解决方案,亲测可用

2020.1至2020.2.* 可以使用一个插件包

JDK							version:1.8
org.jetbrains.intellij		version:0.7.3
Gradle						version:6.8

patchPluginXml {
    sinceBuild = '201'
    untilBuild = '202.*'
}

intellij {
    version = "2020.1"
    type = "IC"
}

2020.3至2022.1.* 可以使用一个插件包

JDK							version:11
org.jetbrains.intellij		version:1.7.0
Gradle						version:6.8

patchPluginXml {
    sinceBuild = '203'
    untilBuild = '221.*'
}

intellij {
    version = "2020.3"
    type = "IC"
}

2022.2至2022.3.* 可以使用一个插件包

JDK							version:17
org.jetbrains.intellij		version:1.13.2
Gradle						version:8.0

patchPluginXml {
    sinceBuild = '222'
    untilBuild = '223.*'
}

intellij {
    version = "2022.2"
    type = "IC"
}

只要按照按照上面的版本来开发,3个包可以解决2020至2022.3之间的所有兼容性问题。
如果遇到报错 ’Task ‘setupDependencies’ not found in root project‘,只需要删除 .idea/workspace.xml 文件,刷新gradle后,重新打包即可。

下面是授人以鱼不如授人以渔环节,我是如何找到这些版本的呢

  1. 首先看一下目前idea版本的变动
    https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html?from=jetbrains.org#intellij-platform-based-products-of-recent-ide-versions
    通过gradle开发idea插件,环境版本适配_第1张图片
    可以看出来,2020.3版本之后需要使用 jdk11,2022.2版本之后需要使用jdk17,通过这里就可以知道,开发插件时,需要指定gradle jvm的版本,以及指定sdk的版本
    由于idea会尽量向后兼容,因此,找变动开始的版本即可,比如2020.3版本至2022.1版本都可以使用ideaIC:2020.3的jar包
  2. 接下来需要找idea对应版本的gradle版本
    https://www.jetbrains.com/legal/third-party-software/?product=iic&version=2020.3.1
    在这里插入图片描述
    可以看到2020.3版本需要gradle的版本是6.7
    3.最后就是找 gradle版本对应的 org.jetbrains.intellij 插件版本,这一步稍微麻烦一些,不过也很简单
    https://github.com/JetBrains/gradle-intellij-plugin/releases?page=1
    在gradle-intellij-plugin插件的releases页面,这里会在描述中指出有各个插件版本对应最低的gradle版本。

至此三个依赖的版本全部找齐,可以愉快的开发和打包,妈妈再也不用担心我的插件被 Jet Brains 打回了。

参考:https://juejin.cn/post/7122385701257084941 感谢这位作者大大

文末推荐一下自己开发的两个插件,专为社区版开发,均可在idea plugins中安装
https://plugins.jetbrains.com/plugin/18109-wlmybatisgenerator Mybatis代码自动生成器插件,很多生成器基于idea完全版的database,社区版不支持database所以无法使用,我开发的这款插件可以在社区版使用,欢迎各位安装试用。
https://plugins.jetbrains.com/plugin/21530-wl-spring-assistant 社区版Spring插件,同样的,社区版不支持spring插件,该款插件支持 @ConfigurationProperties @Value注解,application.properties或者application.yml文件自动补全,并且支持属性到类文件/方法的跳转,还支持Spring事件发布和TransactionalEventListener监听的跳转,欢迎各位试用。

你可能感兴趣的:(intellij-idea,java,ide)