博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IDEA Plugin 开发探索
阅读量:7106 次
发布时间:2019-06-28

本文共 2278 字,大约阅读时间需要 7 分钟。

最近,在优化 APK 体积,压缩图片一般会使用 ,想着一张一张处理太麻烦,就搜索了一些批量处理的工具,有 gradle 脚本的,也有 IDEA 插件的,结果都不大理想,因此,想自己开发一个 TinyPNG 的插件。

全称IntelliJ IDEA,是用于 java 语言开发的集成环境(也可用于其他语言),IntelliJ 在业界被公认为最好的java开发工具。

的创造者,大名鼎鼎的 公司,同时还创造出许多 IT 界耳熟能详的开发工具,

例如:、 、 ,还有谷歌维护的

这些工具有些需要收费,当然,网上也有很多免费的注册码, (话题跑偏了~)

我们在使用这些集成环境时,通常会安装许多,而这些插件也是可以自行开发的。

这里就以 ()这个插件为例,记录下开发插件的过程。

搭建环境

插件开发,要用到 环境,所有一般使用到 ,。

这里有两个版本,Community 是免费版,Ultimate 30 天免费使用,过后可以使用注册码。

两个版本都可以,下载安装完成后,打开

选择新建项目 Create New Project

左边选择插件项目
IntelliJ Platform Plugin ,然后右边选择正确的插件环境,点击
Next ,填写项目名称以及存放位置。

项目创建完成后,目录很简单,这里放出 的目录

lib 目录是手动创建的目录,里面存放一些依赖库 src 目录存放项目代码 resources 目录中, plugin.xml 是整个插件的配置文件,很重要,下面给出 中的 plugin.xml 文件部分代码

cn.deemons.tinypng.plugin
TinyPNG
1.3
Deemons
TinyPNG

A plugin for compression picture by TinyPNG API.

利用 TinyPNG 的 API ,开发的图片压缩工具,其中提供了一些 Key。

欢迎大家留言,提供更多 API Key。

]]>
  • v1.3 fix some bug
  • v1.2 add info
  • v1.1 fix bug
  • v1.0 init
  • ]]>
    com.intellij.modules.lang
    复制代码

    这里填写的信息,会在别人搜索你插件的时候展现介绍

    创建Action

    在 src 下新建 Action

    然后,填写相关信息

    点击 ok 后,会在 src 目录下,自动生成对应的文件

    public class Action extends AnAction {    @Override    public void actionPerformed(AnActionEvent e) {        // TODO: insert action logic here        // 每次点选此 Action,都会调用到这里    }}复制代码

    同时,在插件的配置文件中 plugin.xml ,自动生成对应的 action

    复制代码

    到此,插件的基本创建就结束了。

    之后的编程,很大程度需要依赖 对 Java GUI Swing 的熟悉程度了,反正我是不熟悉的。

    如果需要了解,创建弹窗、存储数据等知识,请参考

    这两个系列教程。

    打包发布

    在插件编写的工程中,需要查看效果,可以直接点击 run 按钮,它会重启一个新的 IDEA,然后随便进入一个项目,查看此插件的效果。

    如果插件编写完成,这时候,可以直接打包插件,点击 Build -> Prepare Plugin Module...

    之后,会在项目目录下,生成一个 zip 文件,这个文件就是打包的插件。

    这个插件,可以发布到插件市场,供其它人下载使用。

    地址:https://plugins.jetbrains.com/ 登录之后,就可以上传你的插件了

    其中,LICENSE 需要填写协议证书地址,一般直接填写 http://www.apache.org/licenses/LICENSE-2.0

    提交,上传成功后,需要一两天的审核时间,如果审核通过,就可以搜索到此插件了。

    这个插件以及上传,

    欢迎 start ,欢迎留言更多 API Key

    参考

    转载于:https://juejin.im/post/5b607aa2e51d45199358d624

    你可能感兴趣的文章
    一个网工的linux学习过程
    查看>>
    新一代人工智能有哪些新看点?
    查看>>
    MySQL冗余数据的三种方案
    查看>>
    Python3.5修炼手册3
    查看>>
    通过数据库来显示迁移文章
    查看>>
    IPv4地址
    查看>>
    X Window 系统的窗口显示原理
    查看>>
    Flask+uwsgi+Nginx+Ubuntu部署
    查看>>
    初探 MySQL 的 Binlog
    查看>>
    HP SmartStart CD ISO下载地址
    查看>>
    域控制器更改IP
    查看>>
    利用自定义Java注解实现资源注入
    查看>>
    多维地址
    查看>>
    rpm打包mysql5.5
    查看>>
    《Effective C++》之条款33:避免遮掩继承而来的名称
    查看>>
    现代软件工程 作业 1 个人项目
    查看>>
    我的友情链接
    查看>>
    jdk1.7升级为1.8
    查看>>
    Hyper-V虚拟网络总结
    查看>>
    博客作业:raid各级别特性
    查看>>