开发部署笔记

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 类。如果跳过此步骤,项目可能缺少必要的生成文件,导致编译或运行时错误。

解决方案

  1. 确保已安装 Maven 3.9.3,并配置好环境变量(运行 mvn -v 检查版本)。
  2. 在项目根目录下(包含 pom.xml 的目录),执行以下命令:
    mvn clean install -DskipTests
  3. 命令执行后,检查 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,就还是用国外的先进一些比较好,他们框架都一样

相关推荐
AOwhisky2 小时前
MySQL 学习笔记(第三期):SQL 语言之数据操作与单表查询
linux·运维·笔记·sql·学习·mysql·云计算
Niyy_2 小时前
Rust 学习笔记 01
笔记·学习·rust
whyTeaFo3 小时前
MIT 6.1810: Lab cow: Copy-on-Write Fork for xv6
笔记
baby_hua3 小时前
ComfyUI 工作流 模型学习笔记1
笔记·学习
sheeta19983 小时前
LeetCode 每日一题笔记 日期:2026.06.02 题目:3633. 最早完成陆地和水上游乐设施的时间 I
笔记·算法·leetcode
xuhaoyu_cpp_java3 小时前
项目学习(一)逆向工程学习
经验分享·笔记·学习
東隅已逝,桑榆非晚3 小时前
数据结构:算法效率与复杂度分析详解
数据结构·笔记·算法
数智工坊4 小时前
周志华《Machine Learning》学习笔记--第六章--支持向量机
笔记·神经网络·学习·算法·机器学习·支持向量机
噜噜噜阿鲁~4 小时前
python学习笔记 | 12.0、错误、调试和测试
笔记·python·学习