记录一下本地源码安装部署ThingsBoard可能踩到的坑

本文介绍了在使用Git下载源码后,如何通过命令行初始化项目、处理网络问题、安装PostgreSQL并解决报错,包括protobuf插件安装和licensseheader问题。最后提到Windows脚本安装的潜在风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用git下载源码后, 必须运行
mvn clean install -DskipTests

这一步很重要, 有很多文件需要初始化, 如果直接放入idea可能存在各种问题, 最好是用命令行执行

  1. 初始化时, 可能报错停止, 这个一般是网络问题, 可以尝试修改maven镜像, 这是我成功构建的镜像
<!--阿里云仓库-->
	 <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
	<!--中央仓库-->
	<mirror>
		<id>repo1</id>
		<mirrorOf>central</mirrorOf>
		<name>Human Readable Name for this Mirror.</name>
		<url>http://repo1.maven.org/maven2</url>
	</mirror>
  1. 安装postgresql, 修改配置文件后, 进入application模块下有个ThingsBoardInstallApplication文件去安装时, 报错
    在这里插入图片描述 可以看到, 安装所需的sql文件不存在, 这就是上面初始化项目的原因, 初始化后, target/data目录下, 可以找到这个sql文件夹, 复制到application/src/data目录下
    在这里插入图片描述
    4.重新执行, 可能会报错【resouce lwm2m object model from file】【Caused by: java.nio.file.NoSuchFileException: lwm2m-registry】

在这里插入图片描述
追踪错误, 发现在这个文件下, 有个属性, 后面多了一个【:】
在这里插入图片描述
关于这里多了个冒号问题, 在github的Issuse里有人反馈, 点击查看具体原因
去掉后, 依然会报错, 跟踪代码发现这个属性内容是空的, 想找一个安装目录, 但是没找到, 在配置文件里也没有这个配置, 于是, 可以在【thingsboard.yml】里添加配置

install:
  data_dir: application/src/main/data

再次执行, 成功安装!

5.启动项目, 可能会报错某些类不存在,
【import org.thingsboard.server.common.msg.gen.MsgProtos】标红这种错误, 甚至右下角会错误提示
在这里插入图片描述
具体原因没有深入研究, 大概就是用到了一个叫【Protocol Buffers】的东西, 我们需要在idea里安装一个插件, 叫【protobuf】
在这里插入图片描述
不同的idea版本这里的插件可能有区别, 还可能与idea不兼容, 去idea官网下载当前版本idea支持的插件. 另外我这里的三个插件, 有的人可能是需要第一个, 原因未知, 并且安装过后可能依然标红, 有的人可能装【Genprotobuf】插件可以消除标红, 我这里无效

  1. 启动时也会有个警告
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.nustaq.serialization.FSTClazzInfo (file:/E:/maven/apache-maven-3.8.1/maven-repository/de/ruedigermoeller/fst/2.57/fst-2.57.jar) to field java.lang.String.value
WARNING: Please consider reporting this to the maintainers of org.nustaq.serialization.FSTClazzInfo
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

这个是说在jdk9后取消了关于反射的一些操作, 不管也不会影响运行, 想屏蔽错误需要加一些启动参数, 具体可以在网上查询
在这里插入图片描述
7. 开发时, 代码正常运行, 打包时可能报错!

Some files do not have the expected license header

在这里插入图片描述
这是因为打包时检查了license头, 有两种方法解决
一. 给我们开发时新添加的文件头部都加入一段注释, 注释内容在根目录有个模板, 或者随便打开一个原来的文件, 从顶部复制粘贴到我们自己的文件中
在这里插入图片描述

二.修改pom, 禁止检测, 具体操作可以自行搜索

最后特别说明一下, 其实在target里有安装脚本, 可以直接运行, 分别是linux和windows的脚本. 上面第4个问题如果不修复, 项目是可以运行的, 但是后续是否存在问题未知, 由于windows脚本安装最后是一闪而过, 不知道有没有报错, 所以我没有采取这种方式, 担心未来出问题
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值