赞
踩
作为一枚程序员,平时最常用的ide就是IntelliJ IDEA。平时会用到各种各样的插件,通过插件的使用,提高自己的开发效率。
idea具有全局性,安装好插件后,对idea生效,所有的工程均能找到。
idea使用的便捷性,在固定的菜单中,或者右键即可看到该插件的使用入口
专注度高,展示出来的内容均是自己需要关注的,不需要关注的就不会展示。可以专注思考自己要怎么用。
和系统解耦,插件可以给给开发提效,却不会去占用项目的空间位置。
…
目前已有插件并不能真的完全满足自己的需求。举个简单的栗子,比如,最近在用mybatis plus的generator,配置完成之后,运行main方法,就可以生成ORM代码。新建一个工程,就需要把代码给拷贝过去,然后再重新配置一下,再生成。
缺点:
基于以上思考,就需要开发插件来和系统解耦,达到提效的效果。
最新版的插件开发使用的是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'
// 顶层结构
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()
}
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());
}
}
src -> main -> resource -> META-INF -> plugin.xml <idea-plugin> <!-- 插件的id,该id是唯一的,插件的坐标是一维的,只有一个id。这点和maven的不太一样,maven的是二维坐标 --> <id>com.geek45.plugin-demo</id> <!-- 插件名字--> <name>plugin demo</name> <!-- 插件的描述,有固定格式,这里可以写html代码 --> <description><![CDATA[ <h1> Demo plugin </h1> 测试插件 <br> 点击插件可以弹出一个弹窗 <p> plugin demo <br /> <b> <a href="https://www.geek45.com">Website</a> | <a href="https://github.com/xiaopangzhi795/plugin-demo">GitHub</a> | </b> </p> ]]> </description> <!-- 这里是插件依赖管理,和gradle的依赖不一回事,可以依赖其他的插件 --> <depends>com.intellij.modules.platform</depends> <!-- 拓展管理,后续的ui页面会在这里配置,暂时用不到 --> <extensions defaultExtensionNs="com.intellij"> </extensions> <!-- action配置,按钮展示在哪里需要在这配置 --> <actions> <action class="com.geek45.action.MyAction" id="myAction" text="action" description="this is action demo" > <!-- 将插件放在Tools菜单中的first位置。 --> <add-to-group group-id="ToolsMenu" anchor="first" /> </action> </actions> </idea-plugin>
gradle中,运行jar命令,就可以把插件打成jar包,在项目根目录中,有build目录,libs中会有打好的jar包。
plugin中,选择本地安装,然后选择刚才打好的jar包,就可以把插件安装到自己的idea中。
打包安装太麻烦了,可以选择本地运行的方式进行调试。
选择runIde,就可以本地运行。该命令支持debug运行,debug可以打断点。
运行该命令,会启动一个新的idea,该idea中已经安装了你开发的插件。在该idea中可以直接使用插件,使用过程中,可以在项目里面断点跟进。
新的idea和正常idea操作是一样的,可以打开一个测试code,来测试你的插件是否正常运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。