IDEA 插件开发教程(二)

·  阅读 5208

我正在参加「掘金·启航计划」

背景

IDEA/Android Studio 插件开发系列教程,文章链接如下:

IDEA 插件开发教程(一)

IDEA 插件开发教程(二)

在第一篇教程中,我对 IDEA 插件项目做了一个大概的介绍,本文是 IDEA 插件开发教程的第二篇,通过本文你可以学会如何把一个老的插件项目运行起来,因为只有运行起来,才能更好的对插件进行分析,看看某个功能别人是如何实现的,提升自己的插件开发水平。

老的插件项目可能会存在的问题

运行开源的插件项目,这还不简单吗,把项目 clone 下来,然后用 IDEA 打开,点击运行按钮不就行了?

实际情况却并非如此,很多开源插件项目,由于时间比较久远,可能会遇到以下问题。

  1. 一些老项目是使用 Intellij Platform Plugin 创建的,不支持官方最新推荐的 Gradle 方式
  2. 项目中使用的 Gradle IntelliJ Plugin 插件版本太老,有些配置已无法识别,以及 Gradle 可以通过 Groovy 和 Kotlin 进行编写,会有一些语法区别,有些属性可能不知如何配置

下面我将通过一些实际案例进行介绍

支持 Gradle

github.com/mcharmas/an… 是一个 Android Parcelable 代码生成插件,开发过 Android 的同学可能会用过这个插件,这个插件 6 年前就已经停止维护了。

下面我们把这个项目的代码 Clone 下来,然后使用 IDEA 把这个项目打开,你会发现根本就无法运行项目。主要原因可能是:这个项目创建的时间比较久,大概十年前就创建了,当时创建 IDE 插件项目与现在发生了很大变化。目前使用新 IDEA 创建的插件项目已经改成了 Gradle 风格的项目了。

如果想运行这个项目,需要做两个修改:

  1. 参考 HelloWorld 项目,把 Gradle 相关配置文件拷贝过来

idea_plugin_guide2_1.png

  1. 在 src 目录中新建 main 目录,然后在 main 中新建 java 和 resources 目录,把原 src 中的代码( 见下图红框 2)拖拽移到 java 目录中,把原 META-INF (见下图红框 1)目录拖拽移到 resources 目录中

通过上面两步操作,项目应该就可以跑起来了,如果跑不起来,可以把 .idea 目录和 android-parcelable-intellij-plugin.iml 文件删除,然后重新导入项目试试。

点击上图中运行按钮,就可以运行插件项目了。如果你遇到其它老的插件项目,发现项目中没有 Gradle 相关配置,都可以按照上面的方法操作。执行第二步操作时,可以直接在 IDE 中使用拖拽文件夹的方式,这样可以保留原文件 Git 提交日志。

插件版本与配置问题

下面我们来看第二个插件项目 github.com/koh-osug/an…,这个项目是前面那个项目停止维护后 fork 过来的。

Clone 项目到本地后,切换分支到 plugin-release 分支,可以看到作者已经把项目转换成了 Grandle 项目,并且新增一个功能。

我们使用 IDEA 把项目打开,可能发现这个项目也无法运行,并且这个项目中的 Gradle 配置文件和我们新建的 HelloWorld 项目中的配置有些不一样。

Groovy 和 Kotlin 语法问题

我们新建的 HelloWorld 中有 build.gradle.kts、settings.gradle.kts 等文件,而在这个项目中是 build.gradle、settings.gradle,他们的区别是:前者是使用 Kotlin 语言写,后者是使用 Groovy 语言写的。

plugins.jetbrains.com/docs/intell…

可以查看这篇官方文档,里面有 Kotlin 和 Groovy 写法示例。

那么针对这个项目,暂时先不用考虑发布插件的配置,我们只需要把 build.gradle 文件修改如下,就可以了。

plugins {
    id "org.jetbrains.intellij" version "1.9.0"
}

repositories {
    mavenCentral()
}

intellij {
//    version = "2022.2.2"
    localPath = "/Applications/IntelliJ IDEA CE.app/Contents"
    plugins = ['java']
}
复制代码

intellij.version 和 intellij.localPath

我在第一篇教程中写过,运行 IDEA 插件项目时,会下载一个通过 version = "2022.2.2" 指定版本的 IDEA,这里介绍另外一种配置,就是可以通过 localPath 配置项指定本地已经安装的 IDEA,这样就可以避免下载将近 1G 大小的 IDEA 文件了。

version 和 localPath 这两个配置项不能同时指定,只能设置一个。

缺少 Run Plugin 选项

当你要运行项目时, 可能会发现 IDEA 运行按钮那里没有 Run Plugin 选项,可以安装下面操作,创建 Run Plugin 选项:

  1. 首先点击上面截图「标记1」处的下拉选项,点击 Edit Configurations...
  2. 在弹出的弹窗中,点击「标记2」 处的加号
  3. 选择 Gradle 后,如「标记3」 所示
  4. 可以把 Name 输入框中内容修改为 Run Plugin,勾选「标记4」 处 store as project file
  5. 「标记5」 处添加 runIde ,然后点击确定按钮即可

上面一通操作,会在项目的 .run 文件夹中创建一个配置文件 Run Plugin.run.xml,这样 IDEA 的运行图标就可以执行 Gradle 的 runIde 任务了。除了上面的方法,让这个插件项目运行起来,还有三种方式:

  1. 直接把 HelloWorld 中的 .run 文件夹拷贝过来

  2. 直接在终端执行 ./gradlew runIde

  3. 点击上面截图右侧 Gradle, 然后点击 Tasks => intellij => runIde

最后

本篇教程就写到这了,按照上面介绍的一些方法,相信大家在遇到一个老的插件项目时,都能够把它运行起来。

更多内容,我将会在后续的教程中介绍。

另外,如果大家这个教程感兴趣,欢迎点赞评论,让我更有动力写下去。

收藏成功!
已添加到「」, 点击更改