大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
我正在参加「掘金·启航计划」
IDEA/Android Studio 插件开发系列教程,文章链接如下:
IDEA 插件开发教程(一)
IDEA 插件开发教程(二)
在第一篇教程中,我对 IDEA 插件项目做了一个大概的介绍,本文是 IDEA 插件开发教程的第二篇,通过本文你可以学会如何把一个老的插件项目运行起来,因为只有运行起来,才能更好的对插件进行分析,看看某个功能别人是如何实现的,提升自己的插件开发水平。
运行开源的插件项目,这还不简单吗,把项目 clone 下来,然后用 IDEA 打开,点击运行按钮不就行了?
实际情况却并非如此,很多开源插件项目,由于时间比较久远,可能会遇到以下问题。
下面我将通过一些实际案例进行介绍
github.com/mcharmas/an… 是一个 Android Parcelable 代码生成插件,开发过 Android 的同学可能会用过这个插件,这个插件 6 年前就已经停止维护了。
下面我们把这个项目的代码 Clone 下来,然后使用 IDEA 把这个项目打开,你会发现根本就无法运行项目。主要原因可能是:这个项目创建的时间比较久,大概十年前就创建了,当时创建 IDE 插件项目与现在发生了很大变化。目前使用新 IDEA 创建的插件项目已经改成了 Gradle 风格的项目了。
如果想运行这个项目,需要做两个修改:
通过上面两步操作,项目应该就可以跑起来了,如果跑不起来,可以把 .idea 目录和 android-parcelable-intellij-plugin.iml 文件删除,然后重新导入项目试试。
点击上图中运行按钮,就可以运行插件项目了。如果你遇到其它老的插件项目,发现项目中没有 Gradle 相关配置,都可以按照上面的方法操作。执行第二步操作时,可以直接在 IDE 中使用拖拽文件夹的方式,这样可以保留原文件 Git 提交日志。
下面我们来看第二个插件项目 github.com/koh-osug/an…,这个项目是前面那个项目停止维护后 fork 过来的。
Clone 项目到本地后,切换分支到 plugin-release 分支,可以看到作者已经把项目转换成了 Grandle 项目,并且新增一个功能。
我们使用 IDEA 把项目打开,可能发现这个项目也无法运行,并且这个项目中的 Gradle 配置文件和我们新建的 HelloWorld 项目中的配置有些不一样。
我们新建的 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']
}
我在第一篇教程中写过,运行 IDEA 插件项目时,会下载一个通过 version = "2022.2.2"
指定版本的 IDEA,这里介绍另外一种配置,就是可以通过 localPath
配置项指定本地已经安装的 IDEA,这样就可以避免下载将近 1G 大小的 IDEA 文件了。
version 和 localPath 这两个配置项不能同时指定,只能设置一个。
当你要运行项目时, 可能会发现 IDEA 运行按钮那里没有 Run Plugin
选项,可以安装下面操作,创建 Run Plugin
选项:
Edit Configurations...
store as project file
上面一通操作,会在项目的 .run 文件夹中创建一个配置文件 Run Plugin.run.xml,这样 IDEA 的运行图标就可以执行 Gradle 的 runIde 任务了。除了上面的方法,让这个插件项目运行起来,还有三种方式:
直接把 HelloWorld 中的 .run 文件夹拷贝过来
直接在终端执行 ./gradlew runIde
点击上面截图右侧 Gradle, 然后点击 Tasks => intellij => runIde
本篇教程就写到这了,按照上面介绍的一些方法,相信大家在遇到一个老的插件项目时,都能够把它运行起来。
更多内容,我将会在后续的教程中介绍。
另外,如果大家这个教程感兴趣,欢迎点赞评论,让我更有动力写下去。