转载自 @柴宁(chaining) 的知识库文章https://www.yuque.com/chaining/thingsboard/zosvwz

环境

IDEA 2020.3
ThingsBoard 3.2.0

问题描述

项目install正常,运行正常,研究源码的时候,有一些类中的依赖找不到,问题如下图
20210506092912604.png
20210506092940232.png
org.thingsboard.server.gen.transport.*是由protobuf自动生成的类,解决这个问题步骤:

  1. IDEA是否安装potobuf插件
  2. 检查类是否成功生成
  3. 修改IDEA的filesize大小 (最关键的步骤)

    解决步骤

    IDEA安装protobuf插件

    柴宁博客推荐的是protobuf Support,他的文档给了protobuf Support插件的下载地址.
    b152c2e7ab35401a8517a63acefaef04.png
    2020.3的IDEA中已经没有这个插件了,随便装一个proto的插件就可以,我装的是Protocol Buffer Editor
    20210506093812318.png

    检查类是否生成成功

    双击shift输入TransportProtos查找类文件
    2021050609405215.png
    在common/queue/target/generated-sources/protobuf/java/org/thingsboard/server/gen/transport/TransportProtos.java
    和common/transport/transport-api/target/generated-sources/protobuf/java/org/thingsboard/server/gen/transport/TransportApiProtos.java
    有的话就生成成功了
    20210506094144829.png
    20210506094325409.png
    此时打开TransportProtos类会发现顶部有警告提示
    文件大小(2.59MB)超出了配置的限制(2.56MB).代码洞察功能不可用
    2021050609455614.png
    英文提示是下面这样的,上面那个是我装了官方的汉化插件Chinese(Simplified) Language Pack / 中文语言包
    f1365117363fb8aabc6f3f8b4a5d1bec.png

    修改文件大小限制

    依次点击菜单栏的 help > 编辑自定义属性 (第一次编辑会提示创建,选择确定)
    20210506095033328.png
    填入idea.max.intellisense.filesize=3000
    20210506095253549.png
    重启idea,再打开common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java
    已经不报错了,ctrl + 左键也可以进入类
    20210506095633252.png
    20210506095510246.png