物联网ThingsBoard源码本地编译篇,超详细教程,小白看过来!

编译准备

我用的是

IDEA2021

maven3.6.3

下载地址

Index of /dist/maven/maven-3/3.6.3/binaries (apache.org)

jdk11.0.12

下载地址https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
注意选择“jdk-11.0.12.1_windows-x64_bin.exe”可执行程序文件,需要oracle账户。

nodejs16.18.0

下载地址https://nodejs.org/dist/v16.18.0/node-v16.18.0-win-x64.zip

npm8.0.0

下载的cmd命令        npm -g install npm@8.0.0

PostgreSQL14.7 

下载地址Community DL Page

数据库可视化工具Navicat(看个人喜好)

thingsboard源码

拉取地址:git clone https://github.com/thingsboard/thingsboard.git

只需要下载,配置这些就可以了。

 下载好后进行环境变量配置。

一丶JDK11.0.12环境

进入 “我的电脑-> 属性 -> 系统高级设置 -> 环境变量”, 在系统环境变量中,新建环境变量,命名为“JAVA_HOME”, 取值为“jave的安装路径——默认值为C:\Program Files\Java\jdk-11.0.15.1”,

你需要改为你自己的安装路径,然后编辑Path系统环境变量, 添加值“%JAVA_HOME%\bin”,%JAVA_HOME%\jre\bin。保存。

二丶Node.js环境

node的稍麻烦些

1.首先在node.js的安装目录新建两个文件夹node_global和node_cache

2.创建完两个文件夹后,在cmd窗口中输入以下命令(两个路径即是两个文件夹的路径):

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"

3.接下来设置电脑环境变量,右键“我的电脑”=》属性=》高级系统设置=》环境变量 进入以下环境变量对话框

4.在【系统变量】新建环境变量 NODE_PATH,值为D:\nodejs\node_global\node_modules,其中D:\nodejs\node_global是上述创建的全局模块安装路径文件夹

5.修改【用户变量】中的path变量,将C:\Users\hua\AppData\Roaming\npm修改为D:\nodejs\node_global

6.点击确定后,配置完成。

三丶MAVEN环境

找到maven的settings.xml文件

D:\maven\apache-maven-3.6.3\conf\settings.xml

 settings.xml中配置本地仓库

 第一步将上面的<localRepository>/path/to/local/repo</localRepository>复制出一份到下面,改其中的仓库路径为自己的路径。

<localRepository>D:\maven\apache-maven-3.6.3\repository</localRepository>

如果你没有该repository文件夹,他会自己创建一个repository文件夹,在你写的目录下。

settings.xml中配置阿里云镜像

下面是我的镜像配置

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
        <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

        <mirror>
      <id>repo2</id>
      <mirrorOf>central</mirrorOf>
      <name>repo2 maven</name>
      <url>http://repo2.maven.org/maven2</url>
    </mirror>


        <mirror>
      <id>uk</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://uk.maven.org/maven2</url>
    </mirror>


        <mirror>
      <id>nexus</id>
      <mirrorOf>central</mirrorOf>
      <name>internal nexus repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
    </mirror>


  </mirrors>

修改后保存。

进行环境变量配置,系统变量下新建变量名:MAVEN_HOME;变量值:D:\maven\apache-maven-3.6.3(自己的maven安装路径)

 系统变量下编辑path,新建D:\maven\apache-maven-3.6.3\bin,确定

确定,保存。

四丶编译

所有的配置都弄好后我们在thingsboard目录cmd执行编译命令

mvn clean install -DskipTests

 需要下载诸多依赖,文件。

下载过程中遇到报错,大部分是网络问题,以下为我碰到的错误:

一.下载gradle-tooling-api-7.1.1.zip时一直报错

还是由于网络问题,找网上的办法,让去官网下载,然后放到C盘用户下的C:\Users\用户\.gradle\wrapper\dists\gradle-7.1.1-bin\f29rtwfnc96ub43tt7p\

下并解压

 这个方式尝试了很多次,并不能解决问题。

如果失败后,每次先进行mvn clean清理环境,再次mvn clean install -DskipTests重新编译。

我在这一步卡了三天,然后不用无线网,连接手机热点下载完成才过去。

温馨提示:如果你流量够多,还是一开始就用

二.yarn-1.22.17.tar下载失败

 这个我是手动下载的地址:

https://github.com/yarnpkg/yarn/releases/download/v1.22.17/yarn-v1.22.17.tar.gz

下载好放到maven本地仓库

D:\maven\apache-maven-3.6.3\repository\com\github\eirslett\yarn\1.22.17包下

再次mvn clean 

mvn clean install -DskipTests重新编译即可。

三.其他问题

按照我推荐的软件版本,基本不会有版本冲突,或者版本不够的情况。

最后编译成功

 遇到报错不要慌,一步一步解决,网上的回答很多,希望能真正解决大家共同的问题,一起进步!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值