本指南将帮助您下载并从源码构建ThingsBoard。
以下说明已在Ubuntu 24.04 LTS和CentOS 8/9上验证通过。
必备工具
本节包含构建工具的安装说明。
Java
ThingsBoard使用Java 17构建。
按以下说明安装Java 17:
验证安装:
1
java -version
Maven
ThingsBoard需要Maven 3.1.0或更高版本。
注意:在某些Linux机器上,安装Maven可能会将Java 7设为默认JVM。如果发生这种情况,请重新配置系统以使用Java 17。
源代码
从GitHub克隆ThingsBoard仓库:
1
2
3
# checkout latest release branch
git clone -b release-4.3 https://github.com/thingsboard/thingsboard.git --depth 1
cd thingsboard
构建项目
在项目根目录下执行:
1
mvn clean install -DskipTests
此命令将:
- 构建项目
- 跳过单元测试和集成测试
- 生成安装包
构建本地Docker镜像(可选)
要构建ThingsBoard服务的本地Docker镜像,请确保已安装Docker。
然后执行:
1
mvn clean install -DskipTests -Ddockerfile.skip=false
可使用以下命令列出Docker镜像:
1
docker images
构建产物
构建成功后,安装包位于:
1
application/target
该目录包含:
- .deb包,适用于Debian/Ubuntu
- .rpm包,适用于CentOS/RHEL
- Windows安装包
运行测试(可选)
需要安装Docker和Docker Compose。请确保Docker已配置为非 root用户运行。
注意: master和release分支已经过测试,因此您可以跳过测试,无需安装Docker。
单元测试和集成测试
运行所有单元测试和集成测试:
1
mvn clean install
黑盒测试
黑盒测试位于https://github.com/thingsboard/thingsboard/tree/master/msa/black-box-tests
请按照对应的README中的说明执行。
预计运行时间约为1小时,取决于硬件性能。
提示与技巧
从ThingsBoard源码构建在全新环境上非常简单。
以下是一些提升构建体验的提示和技巧:
- 清除Maven缓存
1
rm -rf ~/.m2/repository
- 清除Gradle缓存
1
rm -rf ~/.gradle/caches/
- 清除node modules
1
rm -rf ui-ngx/node_modules
- 并行构建、格式化头文件、构建Docker镜像
1
mvn -T 0.8C license:format clean install -DskipTests -Ddockerfile.skip=false
常见构建和运行错误
Docker运行时错误
如果运行本地构建的Docker镜像时出现以下错误:
1
Standard_init_linux.go:175 exec user process caused no such file
这通常表明行尾符设置不正确。
解决方案:
- 重新配置Git使用LF行尾符
- 重新克隆仓库
- 重新构建Docker镜像
详情请参考上方源代码章节。