ThingsBoard 3.3.0 源码编译完整过程!

作为一个爱好文艺热爱生活且很少接触大项目的人来时,编译该项目无疑是对我的一种重重考验,可谓经历百般痛苦与折磨,尤其当相同的问题不断重现时,满脑子都是绝望.....

不过好在我的一直坚持下,终于发现了问题背后的种种原因,最后成功拿下!

以下是我对该项目编译的心得,我所遇到的问题可能是大多数人所碰到的,遇事一定不要慌~ 一定要先把我的文章看完,保证你会有很大的收获!!!(在此要特别鸣谢壮哥的鼎力相助!)

 

1.   源码下载

官网:
https://thingsboard.io/
中文网:
http://www.ithingsboard.com/
源码:
https://github.com/thingsboard

2.   源码编译

2.1   环境配置

(1)先使用Git工具拉取源码

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

在F盘单独创建一个新的项目文件夹workspaceForJava,点击进去右键git bash输入clone指令下载

(2)JDK配置
开发环境配置这一块,可以跟着我的步伐来操作,基本不会出现版本不匹配或者版本冲突等问题。IDEA软件版本无所谓,详细配置如下:
配置JDK版本:
先用IDEA打开 thingsboard,然后在Project Structure里配置SDKS 为11版本,也可以使用本地java也可以点击“+”号进行下载,然后Project和Modules里也进行相应的设置,与之相匹配,如下图所示:
 

查看JDK版本:

(3)Node下载(我的版本是v.16.15.1)下载地址:Previous Releases | Node.js (nodejs.org)

(4)Npm对应版本8.13.2

关于npm的相关使用指令:
// 安装npm
npm install
// 在本地安装包
npm install <package_name> 
// 查看当前镜像源
npm config get registry
// 更改镜像源
npm config set registry https://registry.npmjs.org/

(5)  yarn安装
npm install -g yarn
yarn config set registry https://registry.npm.taobao.org -g 
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

在mvn clean install过程中如果出现yarn相关的错误,肯定都是在ui-ngx文件目录下,此时不要慌!一般是都是yarn安装出现,我们可以使用如下指令进行设置:

在cmd中先输入set-ExecutionPolicy RemoteSigned,然后输入get- ExecutionPolicy会返回RemoteSigned,此时我们可以进行yarn install操作。

此问题解决之后,就可以再次在ui-ngx文件目录下进行mvn clean install -DskipTests

如果出现了gen爆红(这个很常见),不要慌!这主要是因为们没编译好,可以多尝试对整个thingsboard项目进行编译。

(6) 设置阿里云镜像
在pom.xml文件中右键进入maven的settings.xml中先注释掉原来的mirror配置,然后将下面的代码复制进去,IDEA会自动进行识别下载。



<mirror>         
      <id>central</id>         
      <name>aliyun central</name>         
      <url>https://maven.aliyun.com/repository/central</url>        
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>         
      <id>google</id>         
      <name>aliyun google</name>         
      <url>https://maven.aliyun.com/repository/google</url>        
      <mirrorOf>google</mirrorOf>
    </mirror>
    <mirror>         
      <id>public</id>         
      <name>aliyun public</name>         
      <url>https://maven.aliyun.com/repository/public</url>        
      <mirrorOf>public</mirrorOf>
    </mirror>
    <mirror>         
      <id>gradle-plugin</id>         
      <name>aliyun gradle-plugin</name>         
      <url>https://maven.aliyun.com/repository/gradle-plugin</url>        
      <mirrorOf>gradle-plugin</mirrorOf>
    </mirror>
    <mirror>         
      <id>spring</id>         
      <name>aliyun spring</name>         
      <url>https://maven.aliyun.com/repository/spring</url>        
      <mirrorOf>spring</mirrorOf>
    </mirror>
    <mirror>         
      <id>spring-plugin</id>         
      <name>aliyun spring-plugin</name>         
      <url>https://maven.aliyun.com/repository/spring-plugin</url>        
      <mirrorOf>spring-plugin</mirrorOf>
    </mirror> 
    <mirror>         
      <id>grails-core</id>         
      <name>aliyun grails-core</name>         
      <url>https://maven.aliyun.com/repository/grails-core</url>        
      <mirrorOf>grails-core</mirrorOf>
    </mirror>
    <mirror>         
      <id>apache-snapshots</id>         
      <name>aliyun apache-snapshots</name>         
      <url>https://maven.aliyun.com/repository/apache-snapshots</url>        
      <mirrorOf>apache-snapshots</mirrorOf>
</mirror>

2.2 插件下载

(1)IDEA需要安装Lombok、Protocol Buffers、Protocol Support等插件(建议设置编码格式为UTF-8)。

在Plugins中搜索工具进行下载

设置中检查maven版本及jdk版本,注意maven版本越高越好,低的话很容易会出现很多问题,而且会让你头大!至少3.6往上!( 注:本地多jdk版本,需要手动指定运行jdk版本信息)
 

(2)PostgreSQL使用PostgreSQL 12.X及以上版本
设置密码:这里的密码取决于你在安装PostgreSQL时设置的密码,通常为postgres,我这里设置为123

可下载可视化工具(我的是Navicat)进行展示。

2.3 Maven进行编译

在编译过程中,如果老是出现相同的问题,一般都是版本的原因,可以多检查版本是否一致,大多数都是maven版本低导致的,这一点要注意!
(1)控制台进入thingsboard目录,执行mvn clean

(2)编译mvn clean install -DskipTests(建议控制台执行)

问题:如果这一步出现问题,我们可以尝试删除eirslett,该文件在每次编译时都会重新生成,我们可以多尝试几部操作,然后在ui-ngx目录下的patches文件中有三个文件,可以把第一个文件直接删掉!(我这里已经删掉

(3)数据初始化
将dao文件夹下sql文件拷贝至data下

运行ThingsboardInstallApplication

运行成功之后,检查数据库中表是否创建,及admin_settings中是否有数据

 

最后启动ThingsboardServerApplication,观察控制台是否已经连接8080端口。

8080访问登录,输入账户密码

主界面

注:用户相关信息
ThingsBoard 有三种账号,系统管理员、用户管理员和用户
系统管理员:sysadmin@thingsboard.org / sysadmin
用户管理员:tenant@thingsboard.org / tenant
用户:customer@thingsboard.org / customer

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Thingsboard是一个开源的物联网平台,它提供了一个完整的解决方案来连接物理设备和云端系统,以便于数据的传输和管理。Thingsboard源码是开源的,允许开发者自由地定制和修改它的功能和特性,从而满足各种不同的物联网应用场景的需求。 Thingsboard源码解析主要包括以下几个方面: 1. 系统架构和组件:Thingsboard采用了分布式架构设计,包括多个组件,在设备端包括嵌入式平台、传感器等,云端包括数据存储、消息队列、规则引擎等。源码解析可以了解到每个组件的功能和相互协作关系。 2. 数据传输和管理:Thingsboard采用了多种协议和技术来实现数据的传输和管理,包括MQTT、HTTP、CoAP等,同时还采用了数据缓存和异步处理等技术来保证数据的高可靠性和处理效率。源码解析可以深入了解这些技术和实现方式。 3. 规则引擎和数据分析:Thingsboard的规则引擎和数据分析功能可以自定义和配置各种数据处理和转换规则,并提供可视化的工具来实现数据分析和可视化展示。源码解析可以了解到规则引擎和数据分析的具体实现方式和应用场景。 4. 用户界面和可定制性:Thingsboard提供了丰富的用户界面和可定制性特性,包括可拖拽的页面设计、自定义样式和主题、Dashboard等。源码解析可以了解到这些特性的实现方式和技术实现。 总之,Thingsboard源码是一个非常受欢迎的开源物联网平台的源码,通过对其源码的解析可以深入了解其技术实现和应用场景,为开发者提供了很多有价值的经验和教训。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值