作为一个爱好文艺热爱生活且很少接触大项目的人来时,编译该项目无疑是对我的一种重重考验,可谓经历百般痛苦与折磨,尤其当相同的问题不断重现时,满脑子都是绝望.....
不过好在我的一直坚持下,终于发现了问题背后的种种原因,最后成功拿下!
以下是我对该项目编译的心得,我所遇到的问题可能是大多数人所碰到的,遇事一定不要慌~ 一定要先把我的文章看完,保证你会有很大的收获!!!(在此要特别鸣谢壮哥的鼎力相助!)
1. 源码下载
官网:
https://thingsboard.io/
中文网:
http://www.ithingsboard.com/
源码:
https://github.com/thingsboard
2. 源码编译
2.1 环境配置
(1)先使用Git工具拉取源码
git clone https://github.com/thingsboard/thingsboard.git
在F盘单独创建一个新的项目文件夹workspaceForJava,点击进去右键git bash输入clone指令下载
(2)JDK配置
开发环境配置这一块,可以跟着我的步伐来操作,基本不会出现版本不匹配或者版本冲突等问题。IDEA软件版本无所谓,详细配置如下:
配置JDK版本:
先用IDEA打开 thingsboard,然后在Project Structure里配置SDKS 为11版本,也可以使用本地java也可以点击“+”号进行下载,然后Project和Modules里也进行相应的设置,与之相匹配,如下图所示:
查看JDK版本:
(3)Node下载(我的版本是v.16.15.1)下载地址:Previous Releases | Node.js (nodejs.org)
(4)Npm对应版本8.13.2
关于npm的相关使用指令:
// 安装npm
npm install
// 在本地安装包
npm install <package_name>
// 查看当前镜像源
npm config get registry
// 更改镜像源
npm config set registry https://registry.npmjs.org/
(5) yarn安装
npm install -g yarn
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
在mvn clean install过程中如果出现yarn相关的错误,肯定都是在ui-ngx文件目录下,此时不要慌!一般是都是yarn安装出现,我们可以使用如下指令进行设置:
在cmd中先输入set-ExecutionPolicy RemoteSigned,然后输入get- ExecutionPolicy会返回RemoteSigned,此时我们可以进行yarn install操作。
此问题解决之后,就可以再次在ui-ngx文件目录下进行mvn clean install -DskipTests
如果出现了gen爆红(这个很常见),不要慌!这主要是因为们没编译好,可以多尝试对整个thingsboard项目进行编译。
(6) 设置阿里云镜像
在pom.xml文件中右键进入maven的settings.xml中先注释掉原来的mirror配置,然后将下面的代码复制进去,IDEA会自动进行识别下载。
<mirror>
<id>central</id>
<name>aliyun central</name>
<url>https://maven.aliyun.com/repository/central</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>google</id>
<name>aliyun google</name>
<url>https://maven.aliyun.com/repository/google</url>
<mirrorOf>google</mirrorOf>
</mirror>
<mirror>
<id>public</id>
<name>aliyun public</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>public</mirrorOf>
</mirror>
<mirror>
<id>gradle-plugin</id>
<name>aliyun gradle-plugin</name>
<url>https://maven.aliyun.com/repository/gradle-plugin</url>
<mirrorOf>gradle-plugin</mirrorOf>
</mirror>
<mirror>
<id>spring</id>
<name>aliyun spring</name>
<url>https://maven.aliyun.com/repository/spring</url>
<mirrorOf>spring</mirrorOf>
</mirror>
<mirror>
<id>spring-plugin</id>
<name>aliyun spring-plugin</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
<mirrorOf>spring-plugin</mirrorOf>
</mirror>
<mirror>
<id>grails-core</id>
<name>aliyun grails-core</name>
<url>https://maven.aliyun.com/repository/grails-core</url>
<mirrorOf>grails-core</mirrorOf>
</mirror>
<mirror>
<id>apache-snapshots</id>
<name>aliyun apache-snapshots</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
<mirrorOf>apache-snapshots</mirrorOf>
</mirror>
2.2 插件下载
(1)IDEA需要安装Lombok、Protocol Buffers、Protocol Support等插件(建议设置编码格式为UTF-8)。
在Plugins中搜索工具进行下载
设置中检查maven版本及jdk版本,注意maven版本越高越好,低的话很容易会出现很多问题,而且会让你头大!至少3.6往上!( 注:本地多jdk版本,需要手动指定运行jdk版本信息)
(2)PostgreSQL使用PostgreSQL 12.X及以上版本
设置密码:这里的密码取决于你在安装PostgreSQL时设置的密码,通常为postgres,我这里设置为123
可下载可视化工具(我的是Navicat)进行展示。
2.3 Maven进行编译
在编译过程中,如果老是出现相同的问题,一般都是版本的原因,可以多检查版本是否一致,大多数都是maven版本低导致的,这一点要注意!
(1)控制台进入thingsboard目录,执行mvn clean
(2)编译mvn clean install -DskipTests(建议控制台执行)
问题:如果这一步出现问题,我们可以尝试删除eirslett,该文件在每次编译时都会重新生成,我们可以多尝试几部操作,然后在ui-ngx目录下的patches文件中有三个文件,可以把第一个文件直接删掉!(我这里已经删掉)
(3)数据初始化
将dao文件夹下sql文件拷贝至data下
运行ThingsboardInstallApplication
运行成功之后,检查数据库中表是否创建,及admin_settings中是否有数据
最后启动ThingsboardServerApplication,观察控制台是否已经连接8080端口。
8080访问登录,输入账户密码
主界面
注:用户相关信息
ThingsBoard 有三种账号,系统管理员、用户管理员和用户
系统管理员:sysadmin@thingsboard.org / sysadmin
用户管理员:tenant@thingsboard.org / tenant
用户:customer@thingsboard.org / customer