物联网平台thingsboard编译一步到位
先上编译结果,耗时18分39秒
1.thingsboard简介
ThingsBoard是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展。ThingBoard是基于Apache License 2.0协议开源的,可以用于商业用途,因此我们可以对此平台进行二次开发。
- Apache License 2.0的权利: 可以免费使用、可以修改、可以按照自己的方式进行集成。
- Apache License 2.0的要求: 应该清楚的在产品、网站和市场介绍材料中明确指出使用了所依赖Apache License 2.0的软件。
关于Apache License 2.0等开源协议可以找相关资料研究。
thingsboard特点
据官网介绍,ThingsBoard可用于:
- 设备管理,资产和客户并定义他们之间的关系。
- 基于设备和资产收集数据并进行可视化。
- 采集遥测数据并进行相关的事件处理进行警报响应。
- 基于远程RPC调用进行设备控制。
- 基于生命周期事件、REST API事件、RPC请求构建工作流。
- 基于动态设计和响应仪表板向你的客户提供设备或资产的遥测数据。
- 基于规则链自定义特定功能。
- 发布设备数据至第三方系统。
2.clone项目
git clone https://github.com/thingsboard/thingsboard.git
clone好的项目请先不要去编辑器中运行,最好先编译好,因为需要下载很多依赖,编译安装的过程中也会生成一些类,直接打开是会报错的。
3.前置准备
3.1 安装JDK11
ThingsBoard从3.2.2之后将JDK更新到11版本,相较于之前的版是一个极大的更新。 我本次的JDK版本为:
C:\Users\kai>java -version
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment Temurin-11.0.13+8 (build 11.0.13+8)
OpenJDK 64-Bit Server VM Temurin-11.0.13+8 (build 11.0.13+8, mixed mode)
JDK11的安装包可以从清华镜像下载: https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/11/jdk/x64/windows/
3.2 安装Nodejs
thingsboard的前端模块需要依赖Nodejs。
我本次安装的Nodejs版本时:
C:\Users\kai>node -v
v17.1.0
Nodejs可以去官网下载安装。
安装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
3.3 将pkg-fetch放入本地缓存
为了防止在编译过程中JavaScript Executor 编译失败 :
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:yarn (yarn install) on project js-executor: Failed to run task: 'yarn install' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 2 (Exit value: 2) -> [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
[ERROR] mvn <args> -rf :js-executor
需要将pkg-fetch文件放入本地的C:\Users\用户名\.pkg-fetch 目录中。
相关文件可以去github上下载,根据报错提示下载对应的版本:https://github.com/vercel/pkg-fetch/releases
我这里下载的是v12.22.2版本:
- 将 node-v12.22.2-linux-x64更名为fetched-v12.22.2-linux-x64
- 将 node-v12.22.2-win-x64更名为 fetched-v12.22.2-win-x64
3.4 配置maven镜像地址
<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>
4.编译运行
在thingsboard项目目录下运行maven install指令开始编译安装:
mvn clean install -DskipTests
如果遇到网络原因导致有些包没有下载下来请重新执行上述指令。
好了,至此编译安装完成!!!
下一篇文章介绍如何在idea中启动运行。
|