thingsboard开源项目源码编译与启动

前言

ThingsBoard 是目前 Github 上最流行的开源物联网平台,可以实现物联网项目的快速开发和使用。

本文介绍 thingsboard@3.7.0 项目的前后端的编译与启动。

源码下载

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

后端环境准备

  • jdk17 安装
  • maven3.8 以上
  • gradle7.3 以上
  • postgresql 14

在 IDEA 里打开 clone 的 thingsboard 项目,配置文件 applixation.yml 中修改 datasource 配置。

  datasource:
    # Database driver for Spring JPA - org.postgresql.Driver
    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
    # Database connection URL
    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"
    # Database user name
    username: "${SPRING_DATASOURCE_USERNAME:postgres}"
    # Database user password
    password: "${SPRING_DATASOURCE_PASSWORD:postgres}"

源码编译

使用maven进行编译,依次点击clean、install。

[INFO] Thingsboard ........................................ SUCCESS [  0.082 s]
 
[INFO] Netty MQTT Client .................................. SUCCESS [  2.994 s]
 
[INFO] Thingsboard Server Commons ......................... SUCCESS [  0.006 s]
 
[INFO] Thingsboard Server Common Data ..................... SUCCESS [  6.982 s]
 
[INFO] Thingsboard Server Common Utils .................... SUCCESS [  0.800 s]
 
[INFO] Thingsboard Server Common Messages ................. SUCCESS [  1.901 s]
 
[INFO] Thingsboard Actor system ........................... SUCCESS [  1.032 s]
 
[INFO] Thingsboard Server Stats ........................... SUCCESS [  0.304 s]
 
[INFO] Thingsboard Server Common Cluster API .............. SUCCESS [  8.560 s]
 
[INFO] Thingsboard Server Queue components ................ SUCCESS [ 15.263 s]
 
[INFO] Thingsboard Server Common Cache .................... SUCCESS [  0.833 s]
 
[INFO] Thingsboard Server Commons ......................... SUCCESS [  0.004 s]
 
[INFO] Thingsboard Server Common Transport components ..... SUCCESS [  3.189 s]
 
[INFO] Thingsboard MQTT Transport Common .................. SUCCESS [  1.599 s]
 
[INFO] Thingsboard HTTP Transport Common .................. SUCCESS [  0.597 s]
 
[INFO] Thingsboard CoAP server ............................ SUCCESS [  0.617 s]
 
[INFO] Thingsboard CoAP Transport Common .................. SUCCESS [  1.308 s]
 
[INFO] Thingsboard LwM2M Transport Common ................. SUCCESS [  2.418 s]
 
[INFO] Thingsboard SNMP Transport Common .................. SUCCESS [  0.993 s]
 
[INFO] Thingsboard Server Common DAO API .................. SUCCESS [  0.980 s]
 
[INFO] Thingsboard Server Remote Edge wrapper ............. SUCCESS [  4.521 s]
 
[INFO] Thingsboard Extensions ............................. SUCCESS [  0.004 s]
 
[INFO] Thingsboard Rule Engine API ........................ SUCCESS [  1.105 s]
 
[INFO] Thingsboard Server DAO Layer ....................... SUCCESS [  8.115 s]
 
[INFO] Thingsboard Rule Engine Components ................. SUCCESS [  4.452 s]
 
[INFO] Thingsboard Server Transport Modules ............... SUCCESS [  0.004 s]
 
[INFO] Thingsboard HTTP Transport Service ................. FAILURE [10:47 min]
 
[INFO] Thingsboard MQTT Transport Service ................. SKIPPED
 
[INFO] Thingsboard CoAP Transport Service ................. SKIPPED
 
[INFO] Thingsboard LwM2m Transport Service ................ SKIPPED
 
[INFO] Thingsboard SNMP Transport Service ................. SKIPPED
 
[INFO] ThingsBoard Server UI .............................. SKIPPED
 
[INFO] Thingsboard Server Tools ........................... SKIPPED
 
[INFO] Thingsboard Rest Client ............................ SKIPPED
 
[INFO] ThingsBoard Server Application ..................... SKIPPED
 
[INFO] ThingsBoard Microservices .......................... SKIPPED
 
[INFO] ThingsBoard Docker Images .......................... SKIPPED
 
[INFO] ThingsBoard JavaScript Executor Microservice ....... SKIPPED
 
[INFO] ThingsBoard Web UI Microservice .................... SKIPPED
 
[INFO] ThingsBoard Node Microservice ...................... SKIPPED
 
[INFO] ThingsBoard Transport Microservices ................ SKIPPED
 
[INFO] ThingsBoard MQTT Transport Microservice ............ SKIPPED
 
[INFO] ThingsBoard HTTP Transport Microservice ............ SKIPPED
 
[INFO] ThingsBoard COAP Transport Microservice ............ SKIPPED
 
[INFO] ThingsBoard LWM2M Transport Microservice ........... SKIPPED
 
[INFO] ThingsBoard SNMP Transport Microservice ............ SKIPPED
 
[INFO] ------------------------------------------------------------------------
 
[INFO] BUILD FAILURE
 
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.thingsboard:gradle-maven-plugin:1.0.11:invoke (default) on project http: org.gradle.tooling.BuildException: Could not execute build using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-7.1.1-bin.zip'. -> [Help 1]
 
[ERROR]
 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
 
[ERROR]
 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
 
[ERROR]
 
[ERROR] After correcting the problems, you can resume the build with the command


如果出现上述错误,是由于网络问题,无法从配置的maven的setting文件中下载jar包或者pom文件。

解决办法:点击继续编译,多次尝试不行的话,可以手动去aliyun仓库下载对应的jar包和pom文件。

注意:编译过程中功能出现多次错误,只要 thingsboard@3.7.0对应的环境安装对应,剩下的错误一般情况都是网络问题,可继续编译,或者手动下载jar包放入对应的本地仓库。

中途下载失败可尝试清理本地仓库下载失败的jar包或者pom文件,因为下载失败到本地仓库后,再次编译下载jar包,就会读取本地对应的包下有无文件,需要及时清理其中的"lastUpdated,.repositories,.sha1-in-progress" 的文件
以下是清理本地仓库的处理文件

清理本地仓库.bat文件

@echo off

@ ECHO.
@ ECHO.
@ ECHO.                              说    明
@ ECHO -----------------------------------------------------------------------
@ ECHO		  本文件是专门用来解决maven下载所需jar包失败的情况下
@ ECHO			    需要频繁删除本地仓库的问题的
@ ECHO	 本程序会将本文件所在目录下的所有包含"lastUpdated,*.repositories,*.sha1-in-progress" 的文件全部删除
@ ECHO				      请慎用
@ ECHO		    用法:将本文件放入maven本地仓库下双击即可运行
@ ECHO -----------------------------------------------------------------------
@ ECHO.
pause

del /s *lastUpdated* *.repositories *.sha1-in-progress *lastUpdated

@ ECHO -----------------------------------------------------------------------
@ ECHO		  成功删除本文件夹下所有包含"lastUpdated,*.repositories,*.sha1-in-progress" 的文件
@ ECHO -----------------------------------------------------------------------
@ ECHO.
pause

至此,后端编译成功后,先要执行 ThingsboardInstallApplication启动类,把数据库的初始数据写入进去,否则执行 ThingsboardServerApplication 启动类会报错。(数据库中要有对应的表,在thingsboard数据库下执行这几个sql文件)

  1. 把 dao包下的source下的 sql包 复制,放入如下图对应的包下。

  2. 启动 ThingsboardInstallApplication 类,启动成功后查看 PGSQL数据库中有无数据,查看第一个表有数据即可成功启动 ThingsboardServerApplication 启动类。

  3. 启动 ThingsboardServerApplication 类,出现下图所示,即启动成功。

    在这里插入图片描述

  4. 启动成功后,浏览器访问 http://localhost:8080/

    后端接口文档,浏览器访问 http://localhost:8080/swagger-ui/index.html
    在这里插入图片描述

前端环境准备

  • nodejs 20.11.1
  • yarn 1.22.17

查看 thingsboard项目的 ui-ngx 包下的pom文件,其中里面指定了版本。在这里插入图片描述

  1. Node.js安装访问https://nodejs.org,下载指定版本,推荐选择一键安装的 node-v版本号-x64.msi文件进行安装。

  2. 安装完Node.js后,打开cmd窗口,全局安装指定版本的yarn命令:npm install -g yarn@1.22.17。

  3. 安装完成后,可以在cmd窗口输入 node -v 和 yarn -v 查看是否安装成功。

前端安装启动

安装依赖

  • 解压项目ThingsBoard,找到前端项目目录ui-ngx,在该目录下执行安装依赖命令:yarn install 或者npm install
  • 安装时,可能会出现错误。
    如果有提示OpenSSL SSL_read: Connection was reset, errno 10054的报错。

    那么需要修改下Git认证配置,再次执行安装依赖命令。
git config --global http.sslVerify "false"
git config --global https.sslVerify "false"
  • 然后这次安装,有可能出现网络问题,安装不成功。建议多次尝试,或者清理node_moudles包重新安装。
  • 安装成功后显示:

编译构建启动

  • 安装好依赖后,执行 yarn start 或者npm start启动。(如果使用 npm启动,出现一直报错的情况,还是建议使用 yarn启动,启动前 要保证成功安装,yarn install)
    在这里插入图片描述
  • Browser application bundle generation complete,这里需要耐心等待。。。
    在这里插入图片描述
  • 至此,前端安装并启动成功。(如果 Compiled successfully 成功后,还报红,那可能是 后端服务没有启动,可在 proxy.conf.js 这个文件中配置后端url,配置好后,再次编译运行即可)
    在这里插入图片描述
    浏览器访问 http://localhost:4200/ 进入thingsboard 登录页面。

ThingsBoard首页

使用管理员登录,用户名 sysadmin@thingsboard.org, 密码 sysadmin

登录成功后,进入首页。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值