ThingsBoard4.2 的核心环境依赖
jdk17安装教程网址
https://blog.csdn.net/tiehou/article/details/129575138mvn3.9.3 安装教程网址
https://blog.csdn.net/Small_Tsky/article/details/106870647node20安装教程网址
https://www.cnblogs.com/xiaodaidaiPro/p/18253830
1. 编译前需在项目根目录执行 Maven 命令
ThingsBoard 项目在通过 IntelliJ IDEA 打开前,需要在项目根目录下运行 mvn clean install -DskipTests,以生成必要的 Protobuf 文件(位于 gen 目录)。若不执行此步骤,可能导致后续编译失败或缺少必要文件。
ThingsBoard 使用 Protobuf 文件来定义数据结构,Maven 编译过程中会调用相关插件(如 protobuf-maven-plugin)生成 gen 目录下的 Java 类。如果跳过此步骤,项目可能缺少必要的生成文件,导致编译或运行时错误。
解决方案 :
- 确保已安装 Maven 3.9.3,并配置好环境变量(运行 mvn -v 检查版本)。
- 在项目根目录下(包含 pom.xml 的目录),执行以下命令:
mvn clean install -DskipTests- 命令执行后,检查 gen 目录是否生成 Protobuf 相关文件(如 Java 类)。
2. Git 目录检测问题
Maven 插件会检测项目目录下的 .git 文件夹。如果项目目录缺少 .git 文件夹,编译会报错。
ThingsBoard 的某些 Maven 插件(如 git-commit-id-plugin)依赖 Git 元数据来生成项目信息(如版本号、提交 ID)。若项目未初始化为 Git 仓库或 .git 文件夹缺失,插件会抛出异常。
安装git要注意网关
3. Node.js 和 Yarn 版本对齐
项目使用的 Node.js 和 Yarn 版本必须与 pom.xml 中指定的 nodeVersion 和 yarnVersion 保持一致(Node.js 20,Yarn 1.22.22)。
ThingsBoard 的前端模块(Web UI)依赖特定的 Node.js 和 Yarn 版本,版本不匹配可能导致依赖安装失败或运行时错误。pom.xml 中通过 frontend-maven-plugin 指定了版本要求。
4. 配置国内镜像源
由于网络限制,npm、Yarn 和 Maven 下载依赖时可能失败,需配置国内镜像源(vpn并非万能,校园网有点敏感)
ThingsBoard 的前端和后端依赖需要从 npm 仓库、Maven 中央仓库或 GitHub 下载,国内网络可能导致下载缓慢或失败。
5. Yarn 运行 pkg 报错
运行 yarn run pkg 报错,原因是 Web UI 模块的依赖需要通过 HTTPS 从 GitHub 下载,但网络受限。
yarn run pkg 用于打包前端模块,依赖 GitHub 上的某些资源。国内网络可能无法直接访问 GitHub,或者本地代理配置错误(如端口不匹配)。yarn run pkg在webui有依赖需要通过https在github中下载,需要给git配置代理软件的正确端口,本地环境的VPN端口是7897,以前项目使用的端口是7890,具体情况具体分析
6. Nginx 服务依赖 Node 15 和 Node 18
uingx服务需要node18 和node15的linux和win双版本fetched-node15-linux-x64这个程序需要单独上github下载下来放到.cache-pkg,yarn网络问题交叉出现导致无法下载
ThingsBoard 的某些模块可能需要特定版本的 Node.js 二进制文件(如 node15-linux-x64),这些文件通常通过 Yarn 自动下载。但网络限制可能导致下载失败。
7. com.estrc 包编译测试问题
com.estrc 包的测试用例在编译时失败,需要添加 -DskipTests 参数跳过测试。
com.estrc 包可能包含测试用例,依赖特定的测试环境(如数据库、配置文件)。若环境未正确配置,测试会导致编译失败
8. Gradle 7.3.3 下载问题
ThingsBoard 4.2 版本需要 Gradle 7.3.3,但 Maven 编译时因网络问题无法自动下载 Gradle 依赖,需手动下载 zip 文件到 dist 目录。
Maven 编译过程中可能调用 Gradle 任务(如通过 gradle-wrapper),但 Gradle 分发包需要从官网下载,国内网络可能受限。
9. License 检查失败
编译时 License 检查不通过,需注释掉 License 检查插件。
ThingsBoard 使用 License 检查插件(如 license-maven-plugin)验证代码或依赖的许可证。若许可证文件缺失或网络问题导致验证失败,编译会中断。
10. 端口占用问题
编译或运行时,8080 端口或 Node.js 相关端口被占用,导致文件无法写入或修改。部分程序可能自启动,需关闭
ThingsBoard 默认使用 8080 端口运行 Web 服务,若被其他程序占用(如 Tomcat、Nginx),会导致启动失败。
Node.js 进程可能因之前运行未正确关闭而占用端口。
某些服务可能配置为自启动,干扰开发环境。
11.其余插件报错查询网络即可
剩下都是小问题,虽然很多,但请慢慢安装,俩仨天属于正常现象
附录
1.中文版--vue前后端分离的
很多插件已经不支持了,要给他安装支持难度太大了,那个gitee的项目可以当作不存在,安装环境的难度会比4.2国际版还难,要从git上扒取对应插件的对应版本,但很多已经不太支持了
2.中文版--中文官网版本
落后国外版本,如果放弃了vue前后端的things,就还是用国外的先进一些比较好,他们框架都一样