开发部署笔记

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,就还是用国外的先进一些比较好,他们框架都一样

相关推荐
克里斯蒂亚诺更新6 小时前
ruoyi角色权限的对应关系
笔记
a1117769 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
破碎的南瓜10 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
你想知道什么?11 小时前
线性回归-学习笔记
笔记·学习·线性回归
谙弆悕博士11 小时前
系统集成项目管理工程师教程(第3版)笔记——第17章:法律法规和标准规范
笔记·职场和发展·学习方法·业界资讯·软考·法律·法规
谙弆悕博士13 小时前
系统集成项目管理工程师教程(第3版)笔记——第4章:信息系统架构
笔记·系统架构·项目管理·创业创新·学习方法·业界资讯·物理
茯苓gao14 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习
A.零点16 小时前
【期末复习,408 考研计组全程笔记 】— 第4章 :指令系统
笔记·考研·408·计算机组成原理
早茶cc16 小时前
sqli1-5 9报错注入 笔记
笔记
摇滚侠16 小时前
Java 全栈开发实战教程 课程笔记 34-36
java·笔记