从零开始,教你如何开发一款自己的 IDEA 插件!

idea插件介绍

作为一枚程序员,平时最常用的ide就是IntelliJ IDEA。平时会用到各种各样的插件,通过插件的使用,提高自己的开发效率。

为什么开发idea插件?

目前已有插件并不能真的完全满足自己的需求。举个简单的例子,比如,最近在用mybatis plus的generator,配置完成之后,运行main方法,就可以生成ORM代码。新建一个工程,就需要把代码给拷贝过去,然后再重新配置一下,再生成。

缺点:

基于以上思考,就需要开发插件来和系统解耦,达到提效的效果。

开发插件的场景需要准备些什么

开发插件流程(最简单的使用场景)

新建项目(使用的最新的idea,创建流程稍有不一样)

配置gradle

最新版的插件开发使用的是kts的gradle插件。基本用法是一样的,不同的是写法有稍微一点不一样。

一些常用的配置

依赖

//顶层结构
dependencies {
    implementation("org.springframework.boot:spring-boot-starter:2.7.0")
}

// 一般的gradle是 
compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: '2.7.0'

将依赖打进jar包中(不打进去,插件如果有用到依赖,就会无法使用,找不到类)

// 顶层结构
tasks.jar.configure {
    duplicatesStrategy = org.gradle.api.file.DuplicatesStrategy.INCLUDE
    from(configurations.runtimeClasspath.get().filter { it.name.endsWith("jar")}.map { zipTree(it) })
}

将仓库改为阿里云仓库

// 顶层结构
repositories {
    mavenLocal()
    maven("https://maven.aliyun.com/nexus/content/repositories/central/")
    mavenCentral()
}

创建第一个action

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;

public class MyAction extends AnAction {
  @Override
    public void actionPerformed(@NotNull AnActionEvent e) {
        Project project = e.getProject();
        Messages.showMessageDialog(project, "this is message content", "this message title", Messages.getInformationIcon());
    }
}

将action配置到plugin中

src -> main -> resource -> META-INF -> plugin.xml


  
 com.geek45.plugin-demo
  
  plugin demo
  
   Demo plugin 
        测试插件 
点击插件可以弹出一个弹窗

plugin demo
Website | GitHub |

]]>
com.intellij.modules.platform

打包

gradle中,运行jar命令,就可以把插件打成jar包,在项目根目录中,有build目录,libs中会有打好的jar包。

plugin中,选择本地安装,然后选择刚才打好的jar包,就可以把插件安装到自己的idea中。

本地运行

打包安装太麻烦了,可以选择本地运行的方式进行调试。

选择runIde,就可以本地运行。该命令支持debug运行,debug可以打断点。

运行该命令,会启动一个新的idea,该idea中已经安装了你开发的插件。在该idea中可以直接使用插件,使用过程中,可以在项目里面断点跟进。

新的idea和正常idea操作是一样的,可以打开一个测试code,来测试你的插件是否正常运行。

运行效果

来源:blog.csdn.net/smile_795/article/details/125470136

展开阅读全文

页面更新:2024-03-02

标签:用项   插件   断点   便捷   场景   命令   需求   结构   代码   工程

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top