从零开始写一个IDEA插件(二)—— 环境准备

开发环境

上篇文章从零开始写一个IDEA插件(一)------ 前言我们讲了我们要做一个怎么样的插件,这里我们就正常开始进入插件的开发阶段,首先主要准备我们插件开发的基本环境,了解一些基本的配置,并且可以让我们的项目正常的编译和运行起来。

首先我们使用的IDEA版本是当前最新版本2023.2.1(Build #IU-232.9559.62),使用的JDK版本是20.0.2

从IDEA版本2022.2开始,已经开始依赖JAVA17了

新建Plugin项目

打开IDEA,File -> New -> Project,选择IDEA Plugin,开始创建一个插件项目:

注意:JDK版本必须选择17以上,否则无法创建项目

项目创建成功之后,我们会发现它默认创建的是一个kotlin项目,gradle的配置也是kotlin方式的配置,我们可以把它改回来:

  • src/main目录下新建一个java文件,再将kotlin目录删除
  • 复制一份build.gradle.kts,将它改名为build.gradle,里面的配置格式也修正一下,可以先删除一些不必要的配置

最终的目录结构如下:

build.gradle配置如下:

json 复制代码
//必要插件,java 和 intellij
plugins {
    id "java"
    id "org.jetbrains.intellij" version "1.15.0"
}

group  "com.dadada.plugin"
version "1.0-SNAPSHOT"

//指定仓库
repositories {
    mavenCentral()
}

intellij {
    //version属性是一定要指定的,这个属性主要用来指定构建插件时使用的IDEA版本,如果太低,那么你在插件使用了一些版本才有的特性,就会构建失败,反之一样。
    version = "2022.2.5"
    //依赖的IDEA的具体发行版本,可以不用指定,默认就是IC,即社区版本(IntelliJ IDEA Community Edition)
    type = "IC" 

    //localPath可以指定你本地的IDEA版本作为依赖,这样就不用下载了, 这个和version不能同时存在
    //localPath = ""
}

tasks {

    //这里的参数会在构建时, 替换掉plugin.xml中对应的属性
    patchPluginXml {
        sinceBuild = "222"
        untilBuild = "232.*"
    }

}

里面比较重要的是plugins的配置,以及intellij模块的配置,正常来说,如果我们是配置的version,那么在构建项目时会比较慢,因为它需要去下载对应版本的IDEA用于构建项目。如果一下无法下载下来,我们可以选择不指定version,而是使用localPath指定本地的IDEA目录来用于项目的构建。

patchPluginXml可以在编译时替换掉我们plugin.xml中的配置,这样就可以不用去改对应的配置了。

plugin.xml配置

项目中还有一个比较重要的配置是resources/META-INF/plugin.xml,这里面包括一些插件的基础信息配置,以及我们后面需要配置的扩展点都需要通过它来进行:

xml 复制代码
<idea-plugin>
    <!-- 插件的唯一标识,整个插件市场唯一,发布后就不能改了 -->
    <id>com.dadada.plugin.http-plugin</id>

    <!-- 插件名称 -->
    <name>HttpRunner</name>

    <!-- 插件作者信息 -->
    <vendor email="dadada@yourcompany.com" url="https://www.dadada.com">哒哒哒打代码</vendor>


    <!-- 插件的描述,在插件发布后会在插件首页显示 -->
    <description><![CDATA[
      <p>这是一个HTTP插件,可以解析SpringMVC接口并且自动生成参数,支持本地调用</p>
  ]]></description>

    <!-- 插件的依赖配置, 任何插件都应该配置platform, 才可以使用一些基本的功能 -->
    <depends>com.intellij.modules.platform</depends>

    <!--插件扩展点配置, 后面我们的一些扩展会在这里配置 -->
    <extensions defaultExtensionNs="com.intellij">
        
    <!-- 插件的兼容版本,这里使用的是build number -->
    <idea-version since-build="203" until-build="232.*"/>

    </extensions>
</idea-plugin>
  • id是这个插件的唯一标识,发布后就没办法更改了,而且如果和现有的插件市场中的id有冲突的话也是没办法发布的。
  • 插件描述中可以使用html代码来进行美化。
  • com.intellij.modules.platform这个依赖是一定需要配置的,我们需要用到的一些很基础的功能,比如消息、主题、UI、Action等等,都依赖于它。
  • extensions主要用于配置一些扩展点,比如一些service通知配置等等。
  • idea-version指定的是我们插件的兼容版本,注意这里使用的是build number,而不是它的发行版本号,具体对应关系可以看IntelliJ Platform Based Products of Recent IDE Versions

这样一个最基础的插件项目就准备好了,这时候我们右上角选择Run Plugin

然后运行,应该是可以正常编译并且启动了一个新的IDEA,但是我们的项目中没有写任何代码,所以仅仅只是启动了一个简单的IDEA而已。

总结

这篇文章主要是准备我们的插件开发环境,进行了一些基础的配置,并且说明了每项配置的作用,并且可以正常将项目编译和运行,下篇文章就开始进行代码的开发了,我们会先开始我们的工具栏界面(也就是toolWindow)开发。

如果这些内容对你有一点小小的作用,赞和关注随便点点,谢谢!

相关推荐
二闹6 分钟前
三个注解,到底该用哪一个?别再傻傻分不清了!
后端
用户490558160812518 分钟前
当控制面更新一条 ACL 规则时,如何更新给数据面
后端
林太白19 分钟前
Nuxt.js搭建一个官网如何简单
前端·javascript·后端
码事漫谈21 分钟前
VS Code 终端完全指南
后端
该用户已不存在1 小时前
OpenJDK、Temurin、GraalVM...到底该装哪个?
java·后端
怀刃1 小时前
内存监控对应解决方案
后端
TT哇1 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee
码事漫谈1 小时前
VS Code Copilot 内联聊天与提示词技巧指南
后端
Tina学编程1 小时前
48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径
java·算法
Moonbit1 小时前
MoonBit Perals Vol.06: MoonBit 与 LLVM 共舞 (上):编译前端实现
后端·算法·编程语言