Thingsboard小白必修课

Panther 从一位小白走来,虽然现在也还是小白,但是我取之于民,不定时将自己所学到的都分享给大家,这篇为大家分享2019/9/5下午整理的,由于最近一段时间忙着学习angularjs+kubernetes没有怎么发博客,前段时候刚为几台新机搭建了环境并成功的运行,这里就为大家简单介绍一下,我是如何配置运行的,这些都是大家的功劳,大家庭里的人太多了,大家跟我们来就对了

@上海-fRanson 、@琉璃、@大侠 
QQ群 QQ号
China Thingsboard 726442610

thingsboard所需的环境及开发工具
java jdk1.8、maven3.5.4、tomcat8.5.4、idea2019.1.1、git2.22.0、node10.16.2、postgresql9.6.14、navicat、vpn
查询本机是否安装过环境,避免重复安装,如有已经安装过的,自然就不用再次安装

cmd
dxdiag

查看电脑是多少位的操作系统,以下命令提示该电脑的操作系统,本篇以win64位操作系统为例,如安装环境不同请自行下载对应版本的软件

java -version

查看是否安装java jdk

mvn -version

查看是否安装maven

node -v
npm -v

查看是否安装nodejs环境,安装node自带会安装npm指令

one vpn安装
two 安装目录
每次安装结束记得通过cmd检测一下是否安装成功,如果大家跟着我的步骤还是没有操作成功,网盘中我也粘贴了我们群 中大神的操作步骤,大家自行查阅

  1. jdk安装
  2. maven安装
  3. tomcat安装
  4. idea安装
  5. git安装
  6. nodejs安装
  7. postgresql安装
  8. navicat安装

Thingsboard小白必修课

three 百度网盘的地址链接

链接地址
https://pan.baidu.com/s/196yaHDQcx03Ri7dZWUYbsg
 提取码
 2329

开始打地基
jdk安装

  1. 运行工具包中的 jdk-8u162-windows-x64
  2. 下一步 下一步,需要注意的就是路径的地址,一般都是自定义的后期还需要配置环境变量
  3. 图片仅供参考,配置完java_home的路径,在将java_home添加到path中,最后查询
    Thingsboard小白必修课
    Thingsboard小白必修课
    Thingsboard小白必修课
    maven安装
  4. 运行工具包中的 apache-maven-3.5.4
  5. 下一步 下一步,需要注意的就是路径的地址,一般都是自定义的后期还需要配置环境变量
  6. 流程如上图,配置完maven_home的路径,在将maven_home添加到path中,最后查询
  7. 有情提示,如果对于修改maven仓库的地址不是很熟悉或者没有使用过,不必修改他的仓库地址,idea会自动获取maven的默认地址
    Thingsboard小白必修课
    tomcat安装
  8. 运行工具包中的 apache-tomcat-8.5.40-windows-x64
  9. 下一步 下一步,需要注意的就是路径的地址,一般都是自定义的后期还需要配置环境变量
  10. 流程如上图,配置完catalina_base的路径,在将catalina_base添加到path中,最后启动tomcat,并修改用户名和密码
    Thingsboard小白必修课
    idea安装
  11. 运行工具包中的ideaIU-2019.1.1 下一步下一步,注册码激活 工具包中存在
  12. 安装完成之后需要集成自己的jdk、maven、tomcat、设置idea护眼色、修改maven负载最大值、idea安装lombok插件(如果不安装log会报错,可能影响项目无法启动)
  13. 因为过程比较琐碎,百度网盘中我把每一步都贴上了网址,大家可以根据链接的指示操作
    git安装
  14. 运行工具包中的Git-2.22.0-64-bit 下一步下一步
  15. 自定义安装路径,安装成功后空白地方右键
    Thingsboard小白必修课
    nodejs安装
  16. 运行工具包中的node-v10.16.2-x64 下一步下一步
  17. cmd查询,因为安装node,会自带npm
    Thingsboard小白必修课
    postgresql安装
  18. 运行工具包中的postgresql-9.6.14-2-windows-x64 下一步下一步
  19. 切记 切记,输入密码一定要自己常用的
  20. 安装pgsql会遇到,这种错误,直接复制到百度,即可
    There has been an error.
    an error occured executing the Microsoft VC++ runtime installer
    navicat安装
  21. 运行工具包中的navicat100_pgsql_en 下一步下一步
  22. 这里演示的是英文版的,因为英文版的安装简单,注册码同在文件夹内
  23. 连接pgsql
  24. 将该目录下的4个sql文件导入到pgsql中,点击public右键,运行本地sql,会出现22张表格
    thingsboard\b\thingsboard-master\dao\src\main\resources\sql
    Thingsboard小白必修课
    Thingsboard小白必修课
    下载项目,导入idea,成功运行
    官网提示最新为2.4.0 这里我们不通过git下载,当然也可以通过git下载,打包过程都是一样的,我们直接下载zip压缩包为最新的版本2.4.1
    https://github.com/thingsboard/thingsboard
    当下载之后,idea集成过maven并修改过最大接入值时,几分种就可以导入该项目;
    我们打包项目,通过idea的终端Terminal 输入命令
    在该终端下运行打包命令
    mvn clean install -DskipTests
    Thingsboard小白必修课
    在这里如果一切顺利,就应该解决问题啦,打包成功,启动项目,但是一般问题没那么简单,肯定会报错的;
    声明一下,项目打包不需要修改任何代码,通过maven的导入就可以执行打包操作!现在我们都没有修改,这样也好针对不同的问题做出对应的修改;
    *我这里列举几种解决办法 *
    一: 在终端直接打包成功,那就最好啦,这个时候通过maven单独清理 ui + web ui ;两个文件
    thingsboard ServerUI
    ThingsBoard Web UI Microservice
    Lifecycle – > clean --> compile
    如果执行操作都为成功的话,修改 thingsboardmaster\application\src\main\resources\thingsboard.yml目录下的数据库配置文件,这里根据新建数据库的用户名和密码进行修改
    Thingsboard小白必修课
    Thingsboard小白必修课
    二:如果自己刚从网上下载下来的项目,无论怎样都无法打包的话就是前端依赖出现啦问题,a无法*,b依赖出现啦问题;第一个好解决,我重点讲解一下第二个
    出现第二种情况就是因为,UI模块+web ui模块的 node_modules依赖缺少;ui下的node_modules的依赖为1001个, web ui模块下的node_modules的依赖为358个,将工具包中好的依赖导入到你的项目中,再次打包,每次打包结束java进程,从任务管理器中结束掉
    Thingsboard小白必修课
    Thingsboard小白必修课
    打包成功,启动时报错,惠普的会出现9001端口被占用,百度一下 结束被占用的端口,最后都启动成功使用ngrok工具,解压修改端口号启动

打包教程
Thingsboard小白必修课
我刚下载的zip 文件 第一次打包 报错
ui 中的node_modules,解压到 ui目录下 单独打包 ui目录
Thingsboard小白必修课
这样就可以解决ui打包不通过的问题
Thingsboard小白必修课
打包成功,然后 在到主目录下打包
Thingsboard小白必修课
出现端口被占用 , 任务管理器 结束当前进程,结束Javase 进程
Thingsboard小白必修课

最后知识补充一下
thingsboard改造使用mysql数据库
thingsboard从2.2版本开始,兼容关系型数据库与非关系型数据库共用(关系型数据库保存实体类信息、非关系型数据库cassandra保存遥测数据信息)。由于国内偏向使用mysql数据库,而非postgresql。所以,通过修改thingsboard.yml的JDBC链接,可以实现使用mysql数据库的目的。
同理,如果需要改成使用oracle或者其他数据库,也是修改配置文件即可。因为thingsboard使用了JPA作为持久化手段,所以基本兼容目前流行的数据库。
thingsboard.yml配置修改如下:

DATABASE_ENTITIES_TYPE    sql
SPRING_JPA_DATABASE_PLATFORM  org.hibernate.dialect.MySQL5InnoDBDialect
SPRING_DRIVER_CLASS_NAME  com.mysql.jdbc.Driver
SPRING_DATASOURCE_URL  jdbc:mysql://${mysql_ip}:3306/thingsboard?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
SPRING_DATASOURCE_USERNAME      ${mysql_username}
SPRING_DATASOURCE_PASSWORD      ${mysql_password}
上一篇:iot平台thingsboard源码阅读之项目接口分析


下一篇:thingsboard源码安装部署详细教程