关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

ThingsBoard详细编译指南2.4.3

发布时间:2023-06-26 19:00:21

ThingsBoard从零开始之编译

一、安装准备

Win10电脑一台【thingsboard2.4.3】

二、所需软件

IDEA、Navicat Premium、Git、Maven、Node、Fq软件

三、环境配置

  1. Git

https://git-scm.com/download/win

下载64-bit Git for Windows Setup.64位软件并安装,并配置Git全局环境变量。

 

cmd输入git version,如果出现git version xxx.xxx.xx 表示成功。

    2.JDK

https://www.oracle.com/java/technologies/javase-jdk8-downloads.html下载jdk-8u251-windows-x64.exe并且安装。打开cmd输入java如果没有反应,就配置java的环境变量。

JAVA_HOME和Path。然后再打开CMD输入java和javac

    3.MAVEN

http://maven.apache.org/download.cgi下载apache-maven-3.6.3-bin.zip

解压到文件夹中。文件目录尽量不要包含中文。

然后配置Maven的环境变量。MAVEN_HOME和Path,参考java的环境变量配置。

然后打开CMD输入mvn -v查看mvn版本,如果有maven信息表示maven安装完毕。

接下来配置maven的镜像。

打开\Program Files\apache-maven-3.6.3\conf\setting.xml

找到mirrors标签的位置,把下边的mirror复制进去。

            

          alimaven        

          aliyun maven        

          http://maven.leiyu.cn/nexus/content/groups/public/        

          central

          

          

     

     nexus

     *     

     http://maven.leiyu.cn/nexus/content/groups/public/

   

   

     

     nexus-public-snapshots

     public-snapshots

    http://maven.leiyu.cn/nexus/content/repositories/snapshots/

   

    4.Node

https://nodejs.org/zh-cn/download/ 下载windows64位安装包,然后安装,它会自动把node添加到环境变量中。安装完成后打开CMD,输入node -v、npm -v

然后给node配置淘宝镜像

npm install -g mirror-config-china --registry=http://registry.npm.taobao.org

   

四、编译步骤

1)工作空间

新建工作空间workspace-thingsboard

2)克隆代码

在工作空间中鼠标右键Git Bash Herer

输入

git clone https://github.com/thingsboard/thingsboard.git

   

克隆代码到工作空间,然后查看所有分支,并切换到2.4的分支。

git branch -a git checkout origin/release-2.4

   

3)修改源码

用IDEA(以管理员启动)打开源码。

4.3.1 修改node和npm版本

Ctrl Shift F全局搜索代码nodeVersion共有三处地方的pom文件需要修改

 

这里的nodeVersion和npmVersion要改成cmd中node -v 和npm -v出来的版本。

4.3.2 注释License

找到thingsboard根目录的pom注释com.mycila这个插件

 

4.3.3 注释assembly

找到msa/js-executor底下的pom文件,注释maven-assembly-plugin这个插件

 

4)编译源码

以管理员身份启动CMD,进入thingsboard目录,输入

mvn clean install -DskipTests

   

 

五、常见问题

1)进程未杀死导致资源被占用

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project ui: Failed to clean project: Failed to delete F:\workspace\thingsboard\thingsboard\ui\target\node\node.exe -> [Help 1]

二次编译时要先打开任务管理器,进入详细任务,搜索node和java,并且杀死这两个进程

 

或者在cmd中输入

taskkill /f /im java taskkill /f /im node

   

2)Git未配置环境变量

npm ERR! path git

npm ERR! code ENOENT

npm ERR! errno ENOENT

npm ERR! syscall spawn git

npm ERR! enoent Error while executing:

npm ERR! enoent undefined ls-remote -h -t git://github.com/fabiobiondi/angular-

3)License 检查不通过

注释thingsboard根目录pom中的license插件

4)非Server UI模块报错

一般情况下都是网络问题

这些模块报错可能需要fq软件,tb依赖了一些国外的jar包。

看报错信息提示,适当的加入 -X -rf命令进行调试

-X是以debug模式查看mvn构建 -rf是从指定报错的模块开始编译,可以省去很多时间,专注于处理报错的模块。

如:

mvn clean install -DskipTests -X -rf :tb mvn clean install -DskipTests -X -rf :black-box-tests

   

切记,每次编译都要清理内存中的进程。

5)Server UI模块报错

npm install -g mirror-config-china --registry=http://registry.npm.taobao.org #使用淘宝镜像 npm config get registry #查询当前镜像 npm config rm registry #删除自定义镜像,使用官方镜像 npm info express

   

  1. 首先要检查pom中的nodeVersion是否替换,其次检查当前node使用的镜像源是否为淘宝。
  2. 检查ui文件夹中的target/node中的node.exe是否正常。并删除 ui 目录下面的 node_modules 文件夹
  3. 清理node缓存,在cmd中执行
npm cache clean -f

   

如果报错了,切记重启电脑之后,再次进入,因为杀死node进程之后,缓存可能还存在被占用的情况。

  1. 执行
npm update

   

  1.  
  2. 执行
mvn clean install -DskipTests -X -rf :ui

   

  1.  
  2. 也可以单独进入ui目录,执行npm install进行单独调试,如果那个模块报错了,如node-sass报错了,就单独执行npm install node-sass查看具体错误信息,一个一个模块进行解决排查

 

Tip可能存在的问题:

  1. 确保ui目录的权限,是用户完全控制状态,有可能会因为权限问题,无法删除某些文件,而导致报错。
  2. 缺少windows构建插件

MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装 .NET Framework 2.0 SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了其他位置,请将其位置添加到系统路径中。

npm install --global --production windows-build-tools

   

这个问题会导致node-sass编译失败。

  1. Target中的node不可用,可以连上外网进行下载编译

设置node代理,打开fq软件,搜索电脑的proxy,查看代理服务器ip和端口

npm config set http-proxy 127.0.0.1:31233 npm config set prox=http://127.0.0.1:31233

   

注意要及时删除代理

npm config list npm config delete proxy npm config delete proxy-http

   

6)找不到org.thingsboard.server.gen.js.xxx

在编译完成后,重新

mvn clean mvn clean install -DskipTests

   

六、社区热线

推荐两个thingsboard的社区,非常之无措,大家异常活跃。


 

最后贴图镇楼:祝大家都能编译成功早日踏上tb的大军!


/template/Home/leiyu/PC/Static