idea 插件开发一些异常处理

0.新建插件工程

官方推荐使用gradle方式创建

 选择InteliJ Platform Plugin

1.ideaIC下载不成功

开发idea插件时依赖idea community版本,即ideaIC作为library。相当于你开发springboot程序需要各种spring的依赖一样。由于idea插件开发官方推荐gradle方式创建项目,但gradle拉去ideaIC依赖时常常拉取不成功,因此需要手动下载ideaIC依赖并添加到本地。

https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea/ideaIC/2021.2.1/ideaIC-2021.2.1.zip

这个地址即表明ideaIC-2021.2.1版本依赖,根据你开发插件所依赖ideaIC版本不同这里的数字要变更。并且要和你的biuld.gradle中的版本相匹配

intellij {
    version = '2021.2.1'
    plugins = ['com.intellij.java']
    updateSinceUntilBuild = false
    sameSinceUntilBuild = false
}

下载好zip包,放到本地gradle仓库,如果没有修改过通常在%USER%/.gradle/caches/modules-2/files-2.1

例如ideaIC的路径就是com/jetbrains/intellij/idea/ideaIC/2021.2.1。

将下载下来的zip包计算hash,用gitbash工具sha1sum.exe ideaIC-2021.2.1.zip计算出hash值,并创建以这个hash值命名的文件夹,然后gradle reload就不会再去下载而是直接用本地缓存。

2.gradle build失败

No value has been specified for property 'compilerClassPathFromMaven' in task ':instrumentCode'

这个错误是由于idea插件gradle-intellij-plugin版本问题导致,将build.gradle中版本减低到1.1.3一下可以解决。

plugins {
    id 'org.jetbrains.intellij' version '1.1.2'
    id 'java'
}

对应issue:No value has been specified for property 'compilerClassPathFromMaven' in task ':instrumentCode' · Issue #752 · JetBrains/gradle-intellij-plugin · GitHub

3.Execution failed for task ':instrumentCode'.

Could not resolve all files for configuration ':detachedConfiguration3'.

3.1handshake failed

升级你gradle使用的JDK吧,因为gradle 高版本需要jdk11以上,但jdk11.0.2 ssl链接有bug。

 JDK-8220723

注意现有idea运行版本是java11所以升级是指升级jdk11的版本,而不是升级到jdk16或17,如果升级高了之后,因为idea plugin 使用了jdk11的ssl链接,可能会导致你run idel 无法运行,因为class 版本太高,11需要的class版本是55。而openjdk不维护11的高版本jdk所以需要使用其他厂商的jdk,如IBM,ECLIPSE等,如:Archive | Adoptium

3.2 gradle bug

通常还会看到错误类似问题1中无法下载pom或者jar包,这时可以尝试在gradle-wrapper.properties文件中修改gradle版本,如:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

当你的idea中gradle选项use gradle from 选择了gradle-wrpper.properties才会使用这个版本。而且有时候因为gradle版本问题会发现整个intelij插件相关的都拉不下来而且版本号都是一样的如:Could not resolve com.jetbrains.intellij.java:java-gui-forms-compiler:212.5080.55.

这种情况通常不是网络问题,而是编译版本不一致。有两种解决办法

一、use gradle from 选择 wrapper task in gradle build script

二、build.gradle中指定instrumentCode的编译版本配置

tasks {
    instrumentCode {
        compilerVersion = "212.5080.55"
    }
}

这里的版本根据你报错的依赖的版本而定。

iintelij插件编译支持版本参考

IntelliJ Release repository

3.3 intellij plugin bug 

intellij gradle插件有拉取依赖bug参考第2部分解决办法,此时可能需要升级插件版本而不是降级

总结:通过gradle插件构建intellij插件的方式需要反复调整你的gradle版本,jdk版本,ideaIC版本,intellij构建插件版本

4 gradle 依赖拉取失败

idea拉取gradle依赖时如果使用上述方式都不能拉取到intellij相关依赖,但非intellij依赖又能拉到。

此时可能时因为idea gradle相关插件bug,如gradle view等。此时,在插件列表中找到非idea原生gradle相关插件,然后reload gradle项目。如果还不能成功,找到项目文件夹下的 .idea文件夹,这个文件夹时这个项目idea相关的一些配置文件夹。整个删掉,然后重新打开项目。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
idea插件开发中的代码分析是指对插件代码进行静态分析和动态分析,以了解代码的结构、功能和性能等方面的信息。 在idea插件开发中,可以使用一些工具和技术来进行代码分析。其中,静态分析可以通过IDEA提供的代码检查功能、Lint工具、代码审查等方式进行。这些工具可以帮助开发者找出潜在的代码问题、优化代码结构和性能。 另外,动态分析可以使用调试工具来实时跟踪代码的执行过程,了解代码在运行时的行为和状态。通过设置断点、监视变量值、查看函数调用栈等操作,开发者可以深入分析代码的执行流程,检测潜在的问题和性能瓶颈。 对于idea插件开发中的代码分析,可以按照以下步骤进行: 1. 使用IDEA提供的代码检查功能和Lint工具,识别和修复代码中的潜在问题,例如未使用的变量、未处理的异常等。这可以帮助提高代码的质量和可读性。 2. 使用调试工具来跟踪代码的执行流程,了解代码的运行情况。通过设置断点,可以在特定位置停止代码的执行,观察变量的值和函数的调用情况,以便发现问题和进行性能优化。 3. 使用一些性能分析工具来检测代码的性能瓶颈,例如内存泄漏、CPU占用过高等。这些工具可以帮助开发者找到影响插件性能的问题,并进行相应的优化措施。 总结起来,idea插件开发中的代码分析是一个关键的环节,通过静态分析和动态分析可以帮助开发者找出代码中的问题和潜在的性能瓶颈,从而提高插件的质量和性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [IDEA插件开发之环境搭建过程图文详解](https://download.csdn.net/download/weixin_38740201/12725614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【idea插件开发】从0入门idea插件开发idea插件开发教程,如何开发idea插件](https://blog.csdn.net/smile_795/article/details/125470136)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值