前期环境准备

  • 环境版本尽量保持一致;
  • 建议先把文章看完再操作,不要直接看一步操作一步!
  • 编译过程要有耐心!不要看到执行到哪一步很久不动了,就直接Ctrl + C给关掉了。

    下载文件基础软件安装包

    1. Tb基础软件安装包.rar
    2. apache-maven-3.8.1-bin.zip
    3. OpenJDK11U-jdk_x64.msi
    4. node-v12.16.1-x64.msi
    5. Git-2.31.1-64-bit.exe
    6. github加速tb.txt
    7. VSCodeUserSetup-x64.exe

    需要下载各种依赖

    .m2 .gradle .pkg-cache zip包下载
    将 .m2 .gradle .pkg-cache zip包下载后解压到用户目录下 C:\Users\你的用户名\
    image.png

以上2个资料包都在这里。链接:https://pan.baidu.com/s/1mz_oqoNw08TGSngmfRXsSA
提取码:u7bo


注意:

  1. maven仓库地址配置指向C:\Users\你的用户名.m2,或者将.m2/repository中文件复制到你自己的本地仓库内。
  2. 第一次编译不建议使用idea进行操作,它会自动下载,不好控制。
  3. 本文编译过程中只使用了vscode(也可以使用sublime等轻量工具)进行一些全局替换操作,其他时候都是cmd执行命令。
  4. 编译好再导入idea进行二次开发等。

    清理maven本地仓库

windows (分开执行)

  1. cd %userprofile%\.m2\repository
  2. for /r %i in (*.lastUpdated) do del %i

基础软件安装部署

安装git

文章开头提供的zip包内包含此安装文件,或到https://www.git-scm.com/downloads下载,安装后重启cmd验证命令是否生效。

  1. C:\Users\Administrator>git --version
  2. git version 2.31.1.windows.1

安装openjdk11

文章开头提供的zip包内包含此安装文件,或到http://jdk.java.net/archive/下载,安装后配置环境变量并重启cmd验证命令是否生效。

  1. C:\Users\Administrator>java -version
  2. openjdk version "11.0.11" 2021-04-20
  3. OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
  4. OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

安装maven

文章开头提供的zip包内包含此安装文件,或到https://maven.apache.org/download.cgi下载,安装后配置环境变量并重启cmd验证命令是否生效。

  1. C:\Users\Administrator>mvn -v
  2. Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
  3. Maven home: C:\soft\apache-maven-3.8.1\bin\..
  4. Java version: 11.0.11, vendor: AdoptOpenJDK, runtime: C:\Program Files\AdoptOpenJDK\jdk-11.0.11.9-hotspot
  5. Default locale: zh_CN, platform encoding: GBK
  6. OS name: "windows server 2019", version: "10.0", arch: "amd64", family: "windows"

配置 maven > conf > setting.xml

  1. 建议**设置 Maven 为淘宝镜像--加快后续编译速度,非常明显,节约很多时间**
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <mirrors>
  6. <mirror>
  7. <id>alimaven</id>
  8. <name>aliyun maven</name>
  9. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  10. <mirrorOf>central</mirrorOf>
  11. </mirror>
  12. <mirror>
  13. <id>uk</id>
  14. <mirrorOf>central</mirrorOf>
  15. <name>Human Readable Name for this Mirror.</name>
  16. <url>http://uk.maven.org/maven2/</url>
  17. </mirror>
  18. <mirror>
  19. <id>CN</id>
  20. <name>OSChina Central</name>
  21. <url>http://maven.oschina.net/content/groups/public/</url>
  22. <mirrorOf>central</mirrorOf>
  23. </mirror>
  24. <mirror>
  25. <id>nexus</id>
  26. <name>internal nexus repository</name>
  27. <url>http://repo.maven.apache.org/maven2</url>
  28. <mirrorOf>central</mirrorOf>
  29. </mirror>
  30. </mirrors>
  31. </settings>

安装node 12.16.1

文章开头提供的zip包内包含此安装文件,或到https://nodejs.org/en/blog/release/v12.16.1/下载,安装后重启cmd验证命令是否生效。

  1. C:\Users\Administrator>node -v
  2. v12.16.1
  3. C:\Users\Administrator>npm -v
  4. 6.13.4

安装yarn

使用npm命令安装yarn,并验证命令是否生效。

  1. npm install -g yarn
  2. C:\Users\Administrator>yarn -v
  3. 1.22.11

获取源码及配置

快速下载ThingsBoard源码

  1. git clone https://hub.fastgit.org/thingsboard/thingsboard.git

切换到tag v3.3.1

  1. cd thingsboard
  2. git checkout v3.3.1

结果显示,可能已经最新代码,不提示下载更新情况

  1. Updating files: 100% (1081/1081), done.
  2. Note: switching to 'v3.3.1'.

注释license-maven-plugin

打开根目录pom.xml,搜索注释掉 license-maven-plugin 整个 ,两个地方需要注释,如下图所示
image.png

替换yarn版本

vscode快捷键 ctrl + shift + h 全局替换v1.22.4 为 v1.22.11,node版本此文章安装的和tb一致,不需要修改,不一致则全局替换一下,保持一致。
image.png

替换node 版本,如果不一样的话

原有版本号
v12.16.1
v1.22.11

vscode快捷键 ctrl + shift + h 全局替换
image.png

源码编译

前端源码安装前端依赖

npm config set registry https://registry.npm.taobao.org

  1. 网速不好 npm ,yarn 过程中也会下载失败,这是导致很多同学 thingsboard 编译失败的主要原因,所以我们在进行编译之前,也将 npm 替换为淘宝镜像。
  2. - **编译前端**<br />而且确保已经将.pkg-cache文件夹及里面的文件拷贝到了用户目录下<br />目录下面输入命名
  3. ```shell
  4. cd xxx/thingsboard/ui-ngx
  5. yarn install

image.png

特别说明:如果卡在某个进度非常久,可以执行如下命令,重新运行安装命令。

  1. yarn cache clean
  2. yarn install

依赖组件成功界面

image.png
其前端源码下新增一个依赖包
image.png

前端源码编译ui-ngx(可选)

第一次编译的话,习惯先编译一下这个模块,因为它第一次编译太慢了。

  1. cd xxx/thingsboard/ui-ngx
  2. mvn clean package -DskipTests

ThingsBoard 3.3.1源码编译-windows版 - 图9

整体编译

  1. cd xxx/thingsboard
  2. mvn clean package -DskipTests

image.png
看到这个界面就是成功了。

可能出现的问题

按照管网教程及网络资料,中间走了一些弯路,提供大家参考。本次安装采用干净的windows 2019操作系统,没有出网络上其他资料提到的问题。

问题一、有些jdk11比较旧

有些jdk11比较旧,建议用安装包里程序,已经测试没问题。以下就是用JDK11旧版本出现情况
编译错误rest-client
image.png

问题二、使用高版本nodejs

使用高版本nodejs ,比如:node-v14.15.4-x64.msi
错误内容:Validating package.json…error thingsboard-js-executor@3.3.1: The engine “node” is incompatible with this module. Expected version “>=12.0.0 <14.0.0”. Got “14.15.4”
image.png

其他问题,欢迎来咨询。
image.png