• idea plugin demo


    官网地址

    创建方式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZMZiN2R-1668478260238)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1668418722668.png)]

    完事儿之后先说几个重要的文件

    build.gradle.kts:这个需要添加编码设置UTF-8

    tasks {
        // Set the JVM compatibility versions
        withType<JavaCompile> {
            sourceCompatibility = "11"
            targetCompatibility = "11"
            //设置编码
            options.encoding = "UTF-8"
        }
        ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    plugin.xml:这个自动生成就行,但是需要添加标签,其实最主要的就是这个标签

    
        
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    gradle/gradle-wrapper.properties:这个不需要改,一般形如

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    # 这里就是下载的gradle版本了
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip 
    zipStoreBase=GRADLE_USER_HOME
    # 这里会指定下载的路径,这样你就可以去你在gradle设置的路径下去找了,如果未设置,就在C盘那里,Ctrl+alt+S搜索gradle就能看到
    zipStorePath=wrapper/dists
    # 注意:user gradle from 一定要在IDE勾选'gradle-wrapper.properties' file
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    先测试一把

    public class Test extends AnAction {
        @Override
        public void actionPerformed(@NotNull AnActionEvent e) {
            NotificationGroup notificationGroup = new NotificationGroup("testid", NotificationDisplayType.BALLOON, false);
            /**
             * content :  通知内容
             * type  :通知的类型,warning,info,error
             */
            Notification notification = notificationGroup.createNotification("测试通知", MessageType.INFO);
            Notifications.Bus.notify(notification);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    plugin.xml

       <actions>
            <action class="net.canway.Test" text="ceshi" description="tongzhi" id="testid">
                <add-to-group group-id="ToolsMenu" anchor="first"/>
            action>
        actions>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    直接运行

    他就回去下载相应的包以及你在build.gradle.kts指定的idea版本的包version.set("2021.3.3")

    同时会打开一个新的idea界面,也就是你指定的版本2021.3.3

    精彩的地方就来了

    报错

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1i2GjBTi-1668478260240)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1668419480114.png)]

    这个是gradle版本的问题,怎么解决?得去官网查,但是这个问题可以忽略,我改了task的编码后,这里的错误就没有了,也是神奇。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3f1usQf4-1668478260241)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1668419583762.png)]

    这个就是编码问题,前面已经说过了,在build.gradle.kts文件中添加options.encoding = "UTF-8"就可以解决了。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ivFOumV-1668478260241)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1668419789506.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3VCV1Ro1-1668478260242)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1668419956157.png)]

    还有一个错误,是没指定JVM参数,导致不能启动,这个没截图

    我的配置是-Xmx2048m -Xms2048m

    到此,demo结束

    部分问题答案可在Issues · JetBrains/gradle-intellij-plugin · GitHub查到

    我的配置

    PS D:\workdata\idea_plugin_test\plugin3> ./gradlew -version
    
    ------------------------------------------------------------
    Gradle 7.5.1                                                
    ------------------------------------------------------------
    
    Build time:   2022-08-05 21:17:56 UTC
    Revision:     d1daa0cbf1a0103000b71484e1dbfe096e095918
    
    Kotlin:       1.6.21
    Groovy:       3.0.10
    Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
    JVM:          1.8.0_271 (Oracle Corporation 25.271-b09)
    OS:           Windows 10 10.0 amd64
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    可以免费文字识别app有哪些?有这3款app就能够实现提取文字自由
    uniapp app获取keystore等一系列常用数据
    使用MySQL
    UGUI交互组件Slider
    项目全生命周期阶段检查单
    react原理篇:setState()方法说明
    go语言 中 new能初始化哪些类型?
    Selenium使用注意事项
    基于 SOFAJRaft 实现注册中心
    如何测试 Redis 缓存?
  • 原文地址:https://blog.csdn.net/alpha0808/article/details/127860674