ThingsBoard详细编译指南2.4.3

简介: ThingsBoard详细编译指南2.4.3

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复制进去。

     <mirror>        

          <id>alimaven</id>        

          <name>aliyun maven</name>        

          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>        

          <mirrorOf>central</mirrorOf>

          </mirror>

           <mirror>

      <!--This sends everything else to /public -->

      <id>nexus</id>

      <mirrorOf>*</mirrorOf>     

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

    </mirror>

    <mirror>

      <!--This is used to direct the public snapshots repo in the

          profile below over to a different nexus group -->

      <id>nexus-public-snapshots</id>

      <mirrorOf>public-snapshots</mirrorOf>

     <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>

    </mirror>

   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的大军!

目录
相关文章
|
程序员 Linux Android开发
libYuv编译
安卓使用NDK编译libYuv库
472 0
|
机器学习/深度学习 运维 自然语言处理
系统程序的编译与处理
系统程序的编译与处理
|
自然语言处理 编译器 C语言
C/C++程序的编译过程
C/C++程序的编译过程
222 0
C/C++程序的编译过程
jpegNPP编译为so
jpegNPP编译为so
86 0
|
自然语言处理
编译
编译
118 0
|
Web App开发 存储 缓存
V8 编译浅谈
本文是一个 V8 编译原理知识的介绍文章,旨在让大家感性的了解 JavaScript 在 V8 中的解析过程。
V8 编译浅谈
|
开发工具 C++ git
DCMTK-001-3.6.6编译
DCMTK-001-3.6.6编译
291 0
DCMTK-001-3.6.6编译
|
C语言
01-2.C(C程序编译步骤-gcc 编译过程)
c代码编译成可执行程序4步: 1.预处理:宏定义展开,头文件展开,条件编译,同时将代码中的注释删除,这里并不会检查语法 gcc -E hello.c -o hello.
775 0
|
编译器 开发工具 IDE
编译问题汇总
每次在编译各类第三方库的时候都会碰到很多问题,基本上都是通过Google解决,其实简单反思一下就会发现是对于系统了解的不够,对于各类标准也是了解甚少。所以一而再再而三发生的问题其实是可以尽量去避免的。
1969 0