thingsboard入坑记(一)本机编译运行
关于作者
- 汉小锋(harmful-chan)
- email: 1148706823@qq.com
- blog: https://www.cnblogs.com/harmful-chan/
- 转载请注明出处:https://www.cnblogs.com/harmful-chan/p/12193225.html
工具准备:
git 2.16.2 windows命令行版
java jdk 1.8:https://www.cnblogs.com/harmful-chan/p/12193497.html
maven 3.6.3:https://www.cnblogs.com/harmful-chan/p/12193579.html
nvm 1.1.7:https://www.cnblogs.com/harmful-chan/p/12193611.html
nodejs10.16.0
npm 6.9.0
数据库准备:
postgreSQL 9.5.20:介绍安装及配置
安装nodejs部件
npm install -g cross-env
npm install -g webpack
npm install -g gulp
拉取源码
进入自定义目录右击鼠标点击Git Bash Here(装完Git之后才会出现)。
注意:目录千万不要有空格或者中文,nvm不支持。
git clone https://github.com/thingsboard/thingsboard.git
切换代码分支到发布版
注意:一定要切换,不然会发生很多问题。
cd thingsboard
git branch -a //查看分支
git checkout release-2.4 //本机发布版最新是2.4建议用这个
屏蔽license验证
(本机试过不屏蔽可以但为了方便还是屏蔽吧)
记事板打开thingsboard/pom.xml找到“license-maven-plugin”节点注释掉,保存

修改thingsboard/ui/pom.xml的node和npm版本与本机对应
node -v //查看版本
npm -v //查看版本

跳过js-executor和web-ui的windows编译
本地测试不需要,部署应用才需要打包,同时修改以下两个文件,注释掉这个插件
vim thingsboard/msa/js-executor/pom.xml
vim thingsboardmsa/web-ui/pom.xml

添加Maven仓库
这一步很重要,其他仓库或多或少少几个包,导致编译失败
<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>
打包安装
(等吧,每个20来分钟编译不玩)
mvn clean install -DskipTests -X //跳过编译测试文件,编译DEBUGE版,linux加上sudo

别人家的图。。。
查看输出文件thingsboard\application\target

.zip为可执行服务,下篇教如何使用。
注意:基本上面步骤不可能顺利完成的,下面开始填坑。
1、必须用管理员身份打开cmd,编译过程频繁复制拷贝下载,一步错要重新来过。如果不放心把文件夹的只读权限去掉。
右击thingsboard文件夹属性,把只读的勾勾去掉。这步用处不大,但好过没有。

2、Thingsboard HTTP Transtorp [17/32] 发生错误,说xxx删除不掉,打开控制,把正在运行的JAVA 虚拟机结束任务再编译。
正常的话如果没用运行过java应用,这个虚拟机都不会用到。

3.Thingsboard Server UI [22/32] 22还是23忘了,总之就是UI部件报错 。npm ERR! errno: -4048, 之类的。
、 删除 C:\Users\{当前用户名}\.npmrc文件 //这个是切换国内源用到的临时文件,看别人删我也删了
、 清空 C:\Users\{当前用户名}\AppData\Roaming\npm-cache //npm临时缓存
、 删除 thingsboard\ui\node_modules目录
、 运行 npm cache clean --force //清空缓存
5、 再次运行打包命令
4、maven错误,说下载不到xxx包更换源,再打包
5、其他错误,再找吧,一次不行试多两次哈哈。
参考:
https://blog.csdn.net/liuli283/article/details/88376975
https://www.cnblogs.com/Qianwen-Li/p/11562348.html
https://www.cnblogs.com/danny-djy/p/9051714.html
thingsboard入坑记(一)本机编译运行的更多相关文章
- Kylo 入坑记
一.概述 Kylo,作为一个基于 Spark 和 NiFi 的开源数据湖编排框架,解决对数据湖获取.治理.感知和技术支持等诸多问题.Kylo 将数据湖的很多功能自动化,包括数据接入.准备.分析发现.P ...
- Hadoop入坑记
Hadoop入坑记 按照官方给的伪分布式配置 etc/hadoop/core-site.xml: <configuration> <property> <name> ...
- Spring Cloud Gateway入坑记
Spring Cloud Gateway入坑记 前提 最近在做老系统的重构,重构完成后新系统中需要引入一个网关服务,作为新系统和老系统接口的适配和代理.之前,很多网关应用使用的是Spring-Clou ...
- conda命令入坑记
conda命令入坑记 本人使用的软件版本: TypeError: LoadLibrary() argument 1 must be str, not None 网上太多的资料,大多都是在讲path的设 ...
- gRPC入坑记
概要 由于gRPC主要是谷歌开发的,由于一些已知的原因,gRPC跑demo还是不那么顺利的.单独写这一篇,主要是gRPC安装过程中的坑太多了,记录下来让大家少走弯路. 主要的坑: 如果使用PHP.Py ...
- ALS部署Spark集群入坑记
[Stage 236:> (0 + 0) / 400]17/12/04 09:45:55 ERROR yarn.ApplicationMaster: User class threw excep ...
- Day25 前端自学日记——入坑记
一 学习契机 今年是走出校门的第一个年头,进入了一家还算不错的公司,领着一份还算不错的薪水,在外人眼中,似乎这样已经不错了,只要我努力好好做,前程一片光明.可事实真是这样吗?两份实习经历都指向我应该从 ...
- Highcharts入坑记
第一次用Highcharts画一个温度湿度变化的图片,因为不熟悉跳了好多坑,特记录下: 一.JS引用 <script src="~/Scripts/jquery.min.js" ...
- 【netcore入坑记】 .Net core UseRowNumberForPaging 分页报错 SQL Server 2008 R2 EntityFrameworkCore
异常环境: netcore版本:.Net Core 2.1 efcore版本:Microsoft.EntityFrameworkCore.SqlServer 2.1.1 sql sqlserver 版 ...
随机推荐
- git---如何在远程某个分支的基础上新建分支
问题场景 技术主管让你去再某个git分支上新建一个分支去做你的项目,那么如何在原远程分支的基础上新建自己的分支呢? 解决方法 按照以下命令敲即可 git branch newBranch //新建本地 ...
- mysql建立高效索引分析
一.如何建立理想的索引? 查询频繁度 区分度 索引长度 覆盖字段 1.1区分度 假设100万用户,性别基本上男/女各为50W, 区分度就低. 1.2长度小 索引长度直接影响索引文件的大小,影响增删改的 ...
- CAD制图系列之椭圆画法标注
今天我将做一个极轴是92,150的椭圆画法和标注方法 1.打开2014版本CAD制图,快捷键EL,回车: 2.自己随便定一个点 3.输入第一个值,也就是短轴--横轴(输入实际长度,不需要除以二)并且鼠 ...
- OpenCV3入门1—环境搭建与实验
1.环境搭建 1.1 VS2017开发环境搭建 1).下载软件包 https://opencv.org/ 2).配置环境变量 配置win10系统环境变量,把下面路径添加到path. D:\WORK\5 ...
- 实验17:NAT
实验14-1:静态NAT 配置 Ø 实验目的通过本实验可以掌握(1)静态NAT 的特征(2)静态NAT 基本配置和调试 Ø 拓扑结构 实验步骤n 步骤1:配置路由器R1 提供NAT ...
- selenium 调用JavaScript代码
selenium 调用JavaScript代码 调用JavaScript方法有两种: execute_script(): 方法解释:是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕. ...
- 【WPF学习】第四十二章 透明
WPF支持真正的透明效果.这意味着,如果在一个性质或元素上层叠另外几个形状或元素,并让所有这些形状和元素具有不同的透明度,就会看到所期望的效果.通过该特性能够创建透过上面的元素可以看到的的图像背景,这 ...
- 基于 Google-S2 的地理相册服务实现及应用
马蜂窝技术原创内容,更多干货请关注公众号:mfwtech 随着智能手机存储容量的增大,以及相册备份技术的普及,我们可以随时随地用手机影像记录生活,在手机中存储几千张甚至上万张照片已经是很常见的事情.但 ...
- Go语言实现:【剑指offer】变态跳台阶
该题目来源于牛客网<剑指offer>专题. 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 找规律: 1阶:1种: 2阶:2 ...
- 用户登录并返回token(springboot)
何为token?[如果想直接看代码可以往下翻] 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的:1. 客户端使用用户名跟密码请求登录2. 服务端收到请求,去 ...