ThingsBoard3.6源码编译实践

 一. 背景

        公司想要搞一个IOT物联网平台,本来是打算自己写,奈何时间有限,国内的IOT平台没有适合的都太通用了,所以找了ThingsBoard。该IOT平台在国外很火热,社区也很活跃,奈何国内文档少之又少,自己在源码编译这里就踩了不少坑,写出来分享给有需要的人!

 二.环境准备

环境准备:

  1. JDK 11(openjdk)

  2. Maven 3.8.1+

  3. node.js 16+

  4. yarn

  5. idea protobuf插件

  6. idea lombok插件

  7. PostgreSQL 11.7+

数据库准备:

不管用啥方式安装准备一个PostgreSQL数据库,然后创建一个名为‘thingsboard’的数据库,这里不多赘述

IDEA属性配置:

Help -> Edit Custom Properties

idea.max.intellisense.filesize=9999

重启IDE

三. 编译步骤

        1. 拉取源代码        

git clone https://github.com/thingsboard/thingsboard.git

        2. 确保本地满足上述环境

        3. 有能力的最好在代理的网络下编译(配置一个代理)

        4. Idea导入项目

 

        5. 配置maven

        6. 配置jdk,最好是openjdk11

        7. 前端依赖下载

        先安装yarn

#全局安装yarn
npm install -g yarn

#测试是否安装成功
yarn -v
# 进入前端包内
cd ./ui-ngx

# 安装依赖
yarn

        8. 编译后端服务

        命令行执行:

mvn clean install -DskipTests

        如下则编译成功:

**INFO**] Thingsboard ........................................ **SUCCESS**
[  0.092 s]
[**INFO**] Netty MQTT Client .................................. **SUCCESS**
[  1.319 s]
[**INFO**] Thingsboard Server Commons ......................... **SUCCESS**
[  0.003 s]
[**INFO**] Thingsboard Server Common Data ..................... **SUCCESS**
[  2.938 s]
[**INFO**] Thingsboard Server Common Utils .................... **SUCCESS**
[  0.375 s]
[**INFO**] Thingsboard Server Common Messages ................. **SUCCESS**
[  1.707 s]
[**INFO**] Thingsboard Actor system ........................... **SUCCESS**
[  0.419 s]
[**INFO**] Thingsboard Server Stats ........................... **SUCCESS**
[  0.168 s]
[**INFO**] Thingsboard Server Common Cluster API .............. **SUCCESS**
[  5.117 s]
[**INFO**] Thingsboard Server Queue components ................ **SUCCESS**
[  1.411 s]
[**INFO**] Thingsboard Server Common Cache .................... **SUCCESS**
[  0.428 s]
[**INFO**] Thingsboard Server Commons ......................... **SUCCESS**
[  0.003 s]
[**INFO**] Thingsboard Server Common Transport components ..... **SUCCESS**
[  2.139 s]
[**INFO**] Thingsboard MQTT Transport Common .................. **SUCCESS**
[  0.706 s]
[**INFO**] Thingsboard HTTP Transport Common .................. **SUCCESS**
[  0.299 s]
[**INFO**] Thingsboard CoAP server ............................ **SUCCESS**
[  0.279 s]
[**INFO**] Thingsboard CoAP Transport Common .................. **SUCCESS**
[  1.469 s]
[**INFO**] Thingsboard LwM2M Transport Common ................. **SUCCESS**
[  1.118 s]
[**INFO**] Thingsboard SNMP Transport Common .................. **SUCCESS**
[  0.533 s]
[**INFO**] Thingsboard Server Common DAO API .................. **SUCCESS**
[  0.466 s]
[**INFO**] Thingsboard Server Remote Edge wrapper ............. **SUCCESS**
[  2.887 s]
[**INFO**] Thingsboard Server Version Control API ............. **SUCCESS**
[  0.384 s]
[**INFO**] Thingsboard Script Invoke Commons .................. **SUCCESS**
[  0.002 s]
[**INFO**] Thingsboard Server Script invoke API ............... **SUCCESS**
[  0.406 s]
[**INFO**] Thingsboard Extensions ............................. **SUCCESS**
[  0.002 s]
[**INFO**] Thingsboard Rule Engine API ........................ **SUCCESS**
[  0.495 s]
[**INFO**] Thingsboard Server JS Client for remote JS execution **SUCCESS**
[  0.228 s]
[**INFO**] Thingsboard Server DAO Layer ....................... **SUCCESS**
[  3.634 s]
[**INFO**] Thingsboard Rule Engine Components ................. **SUCCESS**
[  2.259 s]
[**INFO**] Thingsboard Server Transport Modules ............... **SUCCESS**
[  0.003 s]
[**INFO**] Thingsboard HTTP Transport Service ................. **SUCCESS**
[ 13.655 s]
[**INFO**] Thingsboard MQTT Transport Service ................. **SUCCESS**
[ 13.699 s]
[**INFO**] Thingsboard CoAP Transport Service ................. **SUCCESS**
[ 13.089 s]
[**INFO**] Thingsboard LwM2m Transport Service ................ **SUCCESS**
[ 13.535 s]
[**INFO**] Thingsboard SNMP Transport Service ................. **SUCCESS**
[ 13.118 s]
[**INFO**] ThingsBoard Server UI .............................. **SUCCESS**
[ 47.668 s]
[**INFO**] Thingsboard Server Tools ........................... **SUCCESS**
[  0.196 s]
[**INFO**] Thingsboard Rest Client ............................ **SUCCESS**
[  0.339 s]
[**INFO**] ThingsBoard Server Application ..................... **SUCCESS**
[ 29.970 s]
[**INFO**] ThingsBoard Microservices .......................... **SUCCESS**
[  0.021 s]
[**INFO**] ThingsBoard Docker Images .......................... **SUCCESS**
[  0.258 s]
[**INFO**] ThingsBoard Version Control Executor ............... **SUCCESS**
[ 13.433 s]
[**INFO**] ThingsBoard Version Control Executor Microservice .. **SUCCESS**
[  0.024 s]
[**INFO**] ThingsBoard JavaScript Executor Microservice ....... **SUCCESS**
[  4.888 s]
[**INFO**] ThingsBoard Web UI Microservice .................... **SUCCESS**
[ 32.897 s]
[**INFO**] ThingsBoard Node Microservice ...................... **SUCCESS**
[  0.035 s]
[**INFO**] ThingsBoard Transport Microservices ................ **SUCCESS**
[  0.001 s]
[**INFO**] ThingsBoard MQTT Transport Microservice ............ **SUCCESS**
[  0.025 s]
[**INFO**] ThingsBoard HTTP Transport Microservice ............ **SUCCESS**
[  0.024 s]
[**INFO**] ThingsBoard COAP Transport Microservice ............ **SUCCESS**
[  0.021 s]
[**INFO**] ThingsBoard LWM2M Transport Microservice ........... **SUCCESS**
[  0.024 s]
[**INFO**] ThingsBoard SNMP Transport Microservice ............ **SUCCESS**
[  0.022 s]
[**INFO**] **---------------------------------------------------------------
---------**
[**INFO**] **BUILD SUCCESS**
[**INFO**] **---------------------------------------------------------------
---------**
[**INFO**] Total time:  03:48 min
[**INFO**] Finished at: 2023-04-19T14:20:06+08:00
[**INFO**] **---------------------------------------------------------------
---------**

        9. 初始化数据库

        把模块dao/src/main/resources/sql文件夹复制到application/src/main/data下

        修改配置文件数据源连接信息:(改成你创建的pg数据库地址)

执行application/src/main/java/org.thingsboard.server.ThingsboardInstallApplication初始化数据源

执行完成查看数据库中是否创建好了表:

        10. 启动后端服务

        执行application/src/main/java/org.thingsboard.server.ThingsboardServerApplication启动服务

        就是正常的SpringBoot服务的启动,无报错即启动成功!

        11. 启动前端服务

        命令行:

cd ./ui-ngx

yarn run start

启动成功!

        12. 访问测试

        http://localhost:4200/

四. 常见问题

问题一:maven编译一直报错:

解决:这是jdk版本不对,一开始我命令行执行

mvn clean install -DskipTests

就一直报这个错,经排查,我本地环境变量配的是jdk17,而在idea中配置的是jdk11,命令行的mvn默认用的是环境变量,所以一直报错,把本地环境变量配置改成jdk11就好了!

问题二:代码中好多类找不到爆红启动报错

解决:要多类是需要经过编译出现的,所以必须先install编译后才能执行。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值