我正在参加「启航计划」

布景

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 插件开发教程(二)

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

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

IDEA 插件开发教程(二)

点击上图中运转按钮,就能够运转插件项目了。假如你遇到其它老的插件项目,发现项目中没有 Gradle 相关装备,都能够按照上面的办法操作。履行第二步操作时,能够直接在 IDE 中运用拖拽文件夹的办法,这样能够保存原文件 Git 提交日志。

插件版别与装备问题

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

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

IDEA 插件开发教程(二)

咱们运用 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 选项:

IDEA 插件开发教程(二)
  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

最后

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

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

别的,假如我们这个教程感兴趣,欢迎点赞评论,让我更有动力写下去。