ThingsBoard 3.3.1源码编译-windows版
ThingsBoard 3.3.1源码编译-windows版
前期环境准备
环境版本尽量保持一致;
建议先把文章看完再操作,不要直接看一步操作一步!
编译过程要有耐心!不要看到执行到哪一步很久不动了,就直接Ctrl + C给关掉了。
下载文件基础软件安装包
Tb基础软件安装包.rar
apache-maven-3.8.1-bin.zip
OpenJDK11U-jdk_x64.msi
node-v12.16.1-x64.msi
Git-2.31.1-64-bit.exe
github加速tb.txt
VSCodeUserSetup-x64.exe
需要下载各种依赖
.m2 .gradle .pkg-cache zip包下载
将 .m2 .gradle .pkg-cache zip包下载后解压到用户目录下 C:\Users\你的用户名\
以上2个资料包都在这里。链接:https://pan.baidu.com/s/1mz_oqoNw08TGSngmfRXsSA
提取码:u7bo
原来分享过期了,2021-10-19更新
链接:https://pan.baidu.com/s/1YyIpM1DMYt5wrh50Rs_3QQ
提取码:rxci
注意:
maven仓库地址配置指向C:\Users\你的用户名\.m2,或者将.m2/repository中文件复制到你自己的本地仓库内。
第一次编译不建议使用idea进行操作,它会自动下载,不好控制。
本文编译过程中只使用了vscode(也可以使用sublime等轻量工具)进行一些全局替换操作,其他时候都是cmd执行命令。
编译好再导入idea进行二次开发等。
清理maven本地仓库
windows (分开执行)
cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i
基础软件安装部署
安装git
文章开头提供的zip包内包含此安装文件,或到https://www.git-scm.com/downloads下载,安装后重启cmd验证命令是否生效。
C:\Users\Administrator>git --version
git version 2.31.1.windows.1
安装openjdk11
文章开头提供的zip包内包含此安装文件,或到http://jdk.java.net/archive/下载,安装后配置环境变量并重启cmd验证命令是否生效。
C:\Users\Administrator>java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
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验证命令是否生效。
C:\Users\Administrator>mvn -v
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: C:\soft\apache-maven-3.8.1\bin\..
Java version: 11.0.11, vendor: AdoptOpenJDK, runtime: C:\Program Files\AdoptOpenJDK\jdk-11.0.11.9-hotspot
Default locale: zh_CN, platform encoding: GBK
OS name: "windows server 2019", version: "10.0", arch: "amd64", family: "windows"
配置 maven > conf > setting.xml
建议设置 Maven 为淘宝镜像--加快后续编译速度,非常明显,节约很多时间
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"\>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/\</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/\</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/\</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://repo.maven.apache.org/maven2\</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
安装node 12.16.1
文章开头提供的zip包内包含此安装文件,或到https://nodejs.org/en/blog/release/v12.16.1/下载,安装后重启cmd验证命令是否生效。
C:\Users\Administrator>node -v
v12.16.1
C:\Users\Administrator>npm -v
6.13.4
安装yarn
使用npm命令安装yarn,并验证命令是否生效。
npm install -g yarn
C:\Users\Administrator>yarn -v
1.22.11
获取源码及配置
快速下载ThingsBoard源码
git clone https://hub.fastgit.org/thingsboard/thingsboard.git
切换到tag v3.3.1
cd thingsboard
git checkout v3.3.1
结果显示,可能已经最新代码,不提示下载更新情况
Updating files: 100% (1081/1081), done.
Note: switching to 'v3.3.1'.
注释license-maven-plugin
打开根目录pom.xml,搜索注释掉 license-maven-plugin 整个<plugin></plugin> ,两个地方需要注释,如下图所示
替换yarn版本
vscode快捷键 ctrl + shift + h 全局替换<yarnVersion>v1.22.4 为 <yarnVersion>v1.22.11,node版本此文章安装的和tb一致,不需要修改,不一致则全局替换一下,保持一致。
替换node 版本,如果不一样的话
原有版本号
<nodeVersion>v12.16.1</nodeVersion>
<yarnVersion>v1.22.11</yarnVersion>
vscode快捷键 ctrl + shift + h 全局替换
源码编译
前端源码安装前端依赖
- 首先,设置 npm 、yarn为淘宝镜像
yarn config set registry https://registry.npm.taobao.org
npm config set registry https://registry.npm.taobao.org
网速不好 npm ,yarn 过程中也会下载失败,这是导致很多同学 thingsboard 编译失败的主要原因,所以我们在进行编译之前,也将 npm 替换为淘宝镜像。
- 编译前端
而且确保已经将.pkg-cache文件夹及里面的文件拷贝到了用户目录下
目录下面输入命名
cd xxx/thingsboard/ui-ngx
yarn install
特别说明:*如果卡在某个进度非常久,可以执行如下命令,重新运行安装命令。*
yarn cache clean
yarn install
依赖组件成功界面
其前端源码下新增一个依赖包
前端源码编译ui-ngx(可选)
第一次编译的话,习惯先编译一下这个模块,因为它第一次编译太慢了。
cd xxx/thingsboard/ui-ngx
mvn clean package -DskipTests
整体编译
cd xxx/thingsboard
mvn clean package -DskipTests
看到这个界面就是成功了。
可能出现的问题
按照管网教程及网络资料,中间走了一些弯路,提供大家参考。本次安装采用干净的windows 2019操作系统,没有出网络上其他资料提到的问题。
问题一、有些jdk11比较旧
有些jdk11比较旧,建议用安装包里程序,已经测试没问题。以下就是用JDK11旧版本出现情况
编译错误rest-client
问题二、使用高版本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"
本文由博客一文多发平台 OpenWrite 发布!
ThingsBoard 3.3.1源码编译-windows版相关推荐
- RedisDesktopManager源码编译windows版(基于2022.1版本)
一.环境依赖 1.Git 2.Visual Studio Community 2019 3.Qt 5.x 4.Python 3.9 5.CMake 6.Windows Openssl 7.NSIS 8 ...
- Grafana源码编译--Windows
Grafana源码编译–Windows 准备工作 1.系统:Windows 2.软件: (1)GO:尽量使用跟Grafana源码版本一样的Go版本,通过Github上https://github.co ...
- ThingsBoard——v3.3.3源码编译
要二次开发,肯定少不了编译源码.编译的难点就是坑多,因为我们的环境不可能跟源码作者的一样,当然你的跟我的也可能不一样.我的环境:系统:macOS10.15.5,CPU i7 1 准备工作 1.1 编译 ...
- Firefox源码编译(Windows)
1.系统要求 内存:最低4GB,推荐8GB+. 磁盘空间:至少40GB的可用磁盘空间. 操作系统:Windows10. 2.系统准备 下载安装Visual Studio 2019的构建工具,选择以下项 ...
- 代码工程 /Qt /5.9.3源码编译
文章目录 概述 小试牛刀 安装Perl configure 执行编译 执行安装 再试牛刀 CMD导致的杯具 正式使用新环境 Qt 安装版(exe文件) 目录基本说明 一个小插曲 重新来过 编译环境 P ...
- Win7+VS2010:mysql 源码编译与调试
win7+vs2010源码编译mysql 最近由于在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制,目前萌生了要研究一下mysql数据库源码的想法.那么好吧,说干就干,首先我们需要 ...
- python源码编译 mingw_使用mingw32 在windows python26 下编译安装4suite-xml
最近在研究python下xml处理技术,需要在windows python26平台下安装4suite-xml. 但是4suite-xml在官网上只提供的最新安装包只支持到python25,也就是说只能 ...
- opencv + contrib windows下源码编译
网上,包括书上有很多人云亦云的源码编译方式,不能说不正确但是有很多弯弯绕绕(坑).最近刚做完了一个识别项目的第一个版本,总结了一下..为了写这篇文章,特意重新在自己电脑搭了一遍开发环境. 最权威的方式 ...
- windows和linux下源码编译7-Zip(7za)
windows和linux下源码编译7-Zip(7za) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 windows和l ...
最新文章
- java 比较器comparator_Java中比较器的使用Compare和Comparator
- Windows Server 2008虚拟机ERP压力测试(5)
- linux du -hd1查看文件及目录所占磁盘空间
- 李洪强经典面试题37
- Task 6.2冲刺会议六 /2015-5-19
- layui表格有边框_layui前端框架表格如何进行屏幕适配
- String s String s=null和String s=a区别
- We want to do better without being distracted
- 服务器如何关闭登录日志文件,linux云服务器登录日志文件
- c语言if语句教学设计,C实验教案(清华)
- hadoop hdfs文件给其他账号授权
- pyecharts可视化画3D动态地球仪,世界地图,中国地图。
- matlab 函数中引用文件,Matlab如何调用其他m文件中的函数
- 自定义ViewGroup
- postgresql模糊查询不区分大小写
- 安卓小游戏之2048
- pip install下载速度太慢
- Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)
- kingbase人大金仓常用sql命令(自用总结)
- java开发百度地图瓦片_百度地图API:利用瓦片生成工具,自定义背景图片
热门文章
- 【SSL】2344 【洛谷】2835刻录光盘
- Redis入门(七):Redis分布式锁(单机模式/集群模式)
- C++ 判断文件文件夹是否存在
- Linux x86 漏洞利用-Use-After-Free(UAF)-释放后可重用
- cannot find package “github.com/PuerkitoBio/goquery“ in any of
- golang标示废弃方法api
- python数组从小到大排序_Python 实现将数组值按从小到大的顺序排列
- 个人计算机的防病毒软件无法防止,如果无法打开计算机防病毒软件应该怎么办...
- Cell:首次揭示肿瘤胞内菌在癌症转移过程中的作用
- STM32--矩阵键盘的设计实现