上次已经聊过怎么准备idea插件开发的环境了,现在新建一个demo项目,用来简单的测试环境
如果环境有问题,看看上一篇文章看能不能有帮助,如果还是不行,欢迎私信.
1.新建一个idea plugin项目
新建项目很简单,跟创建一个gradle项目一致,只需要勾选IntelliJ平台插件的库即可
只需要注意一点,这里的项目SDK需要选择自己前面准备的插件开发SDK的版本一致的版本
填写对应的项目信息,点击完成即可
2.构建项目
创建成功后会进入开发界面,此时idea会构建项目.
如果是第一次构建,可能会有几个比较大的依赖下载起来会比较慢,如果不着急的话,就静静等待; 如果是网速不好,下载超时的话,还有其他的解救方案,如下做个简单的介绍:
2.1 设置gradle国内镜像加速
这个是很有必要的,设置镜像加速以后,依赖下载速度会很大的提高.
具体的方法有两种:
方法一:当前项目生效
在项目于的build.gradle中的repositories下添加如下配置即可:
repositories {
maven {
url "http://maven.aliyun.com/nexus/content/groups/public"
}
}
复制代码
方法二:全局生效
如果想要全局生效,需要在gradle的目录下,添加配置.
首先找到gradle的目录,一般都在用户根目录下(如果不是的话,可以全局搜一下),例如我的是C:\Users\admin.gradle;
然后进入到.gradle目录,新建一个init.gradle文件(如果有的话,直接在里面追加),添加如下内容:
allprojects {
repositories {
maven {
url "http://maven.aliyun.com/nexus/content/groups/public"
}
}
}
复制代码
这样,镜像加速就设置好了
2.2 手动下载依赖文件
因为有几个依赖确实很大,且下载速度很慢,如果网速可以的话,只需要设置了镜像加速,等等也就构建好了,如果网速不行的话,可以使用手动下载文件后构建.
主要遇到的几个比较大的文件如下:
gradle-x.x-bin文件手动下载:
gradle-x.x-bin是构建时第一个比较大的需要下载的文件, 可能下载会比较慢,这时我们可以做如下操作:
先停止idea的自动构建,
然后进入到.gradle\wrapper\dists文件夹看看,有没有gradle-x.x-bin或者gradle-x.x-all格式的文件夹,
如果没有的话,在你新建项目的项目文件夹中,有build.gradle的目录执行下述构建命令,直到.gradle\wrapper\dists文件夹中出现gradle-x.x-bin或者gradle-x.x-all格式的文件夹,停止命令的执行
gradle build
复制代码
当.gradle\wrapper\dists文件夹中出现gradle-x.x-bin或者gradle-x.x-all格式的文件夹时,进入文件夹,此时会有类似"efvqh8uyq79v2n7rcncuhu9sv"这样编码过的格式的文件夹,再进入,删除里面的所有文件
通过分享网址下载与文件夹对应的zip包(一定要下载对应的包),下载完成后复制进刚刚删除文件的文件夹
再构建项目,发现已经跳过了gradle-x.x-bin文件的下载了
ideaIC文件手动下载:
ideaIC是另一个比较慢的依赖,只要有两个文件夹里的东西需要手动下载:
.gradle\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC
.gradle\caches\modules-2\metadata-2.96\descriptors\com.jetbrains.intellij.idea\ideaIC
这个文件夹需要的文件在网上没有找到下载源,我这边有2020.3.2版本的,如果需要的话,可以私聊我,后续我会上传上去后,更新2020.3.2版本的下载链接; 但如果是其他版本的,就需要慢慢等着下载了
3.配置plugin.xml文件
以下是个示例
<idea-plugin>
<id>com.xyz.demo</id>
<name>配置1:插件的名字</name>
<vendor email="xxx@163.com" url="http://www.xxx.com">你的公司\姓名</vendor>
<description><![CDATA[
这个是整个项目的描述.<br>
<em>这里面用来介绍你的插件的功能</em>
<em>这里面支持标准的HTML标签</em>
]]></description>
<!-- please see https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<depends>com.intellij.modules.platform</depends>
<extensions defaultExtensionNs="com.intellij">
<!-- 在此处添加扩展 -->
</extensions>
<change-notes><![CDATA[
这个是整个项目的版本更新记录,不强制存在.<br>
<em>如果要使用该标签,需要把build.gradle文件中的patchPluginXml标签中默认添加的内容删除</em>
<em>这里面支持标准的HTML标签</em>
]]></change-notes>
<actions>
<!-- 在此处添加您的操作 -->
</actions>
</idea-plugin>
复制代码
4.一个demo Action
在项目中选择适当的包,新建java文件来完成一个操作,idea对于新建idea插件操作有可视化的创建方式,步骤如下:
然后填写对应的信息,选择需要添加到的母菜单项,然后设置快捷键(可选),点击确定即可
此时,可以看到一个Java文件已经新建出来了,实现了AnAction类,有一个actionPerformed方法需要实现,这个方法就是我们触发了插件的操作以后,实现逻辑的方法
此外,在plugin.xml中也自动添加了对应的action的配置
<actions>
<!-- 在此处添加您的操作 -->
<action id="xxx.DemoAction" class="com.xxx.action.DemoAction" text="DemoAction" description="测试操作">
<add-to-group group-id="ToolsMenu" anchor="first"/>
<keyboard-shortcut keymap="$default" first-keystroke="shift D"/>
</action>
</actions>
复制代码
再实现actionPerformed方法,就可以做一个简单的测试了
@Override
public void actionPerformed(AnActionEvent e) {
//弹出一个文本框,Messages.getInformationIcon()是获取一个图标icon,可以是自定义的图标
Messages.showMessageDialog("测试弹出框内容", "弹出框标题", Messages.getInformationIcon());
}
复制代码
5.运行插件
插件的运行和普通的项目运行一样,idea会默认的配置来运行这个插件,只需要点击运行即可
点击运行以后,会弹出一个新的idea(第一次较慢)
查看新弹出的idea项目plugin配置,会发现我们自定义的插件已经安装
随便新建或者打开一个项目,便可以测试我们自定义的插件
这是一个用来测试环境的idea插件项目的demo,能够弹出测试弹窗说明我们已经可以进行插件开发了
而在插件开发过程中,还会遇到很多的问题,例如action的配置 Action的母菜单的选择等等
在开发一个实际可用的插件时,还需要了解插件开发的一些API
这些在下一篇更新里分享
近期评论