ThingsKit开发指南-开发环境搭建(后端)

💡 提示

开发电脑最低内存16G

1/11:安装JDK(11.0.12)

💡 提示

环境变量中配置JDK版本不能低于11.0.12。

下载并解压

https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html

配置环境变量

  1. JAVA_HOME
  2. CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  3. PATH=%JAVA_HOME%\bin
ThingsKit开发指南-开发环境搭建(后端)

2/11:安装NodeJs(16.14)

💡 提示

NodeJs版本不能低于12.20.0,推荐16.1317

下载并解压

https://nodejs.org/en/download/

配置环境变量

  1. NODE_HOME
  2. PATH=%NODE_HOME%\
ThingsKit开发指南-开发环境搭建(后端)

windows系统调整策略

💡 提示

Windows10操作系统默认不允许任何脚本运行。需要以管理员身份运行PowerShell执行命令。

set-ExecutionPolicy RemoteSigned

命令执行效果图

ThingsKit开发指南-开发环境搭建(后端)

安装yarn

NodeJs默认只安装了包管理命令npm。我们需要自己安装包yarn。

npm install yarn -g

3/11:安装Maven(3.6.0)

💡 提示

Maven版本不能低于3.6.0

下载并安装maven

http://maven.apache.org/download.cgi

配置环境变量

  1. M2_HOME
  2. PATH=%M2_HOME%\bin
ThingsKit开发指南-开发环境搭建(后端)

为maven配置国内镜像

在maven的配置文件apache-maven-3.8.4/conf/settings.xml中添加国内的镜像。提高依赖包下载速度。

  <mirrors>
	 <!-- "mirrorOf"的值为“*”表示代理所有仓库  central-->
	 <mirror>
       <id>aliyun_maven</id>
	   <name>阿里云公共仓库</name>
       <mirrorOf>central</mirrorOf> 
       <url>https://maven.aliyun.com/repository/public</url>
   </mirror>
  </mirrors>

4/11:安装Gradle(6.6.1)

下载二进制文件并解压

https://gradle.org/releases/

下载页面如图

ThingsKit开发指南-开发环境搭建(后端)

配置环境变量

  1. GRADLE_HOME
  2. PATH=%GRADLE_HOME%\bin
ThingsKit开发指南-开发环境搭建(后端)

5/11:安装数据库postgresql

下载并安装

💡 提示

PostgreSQL版本不能低于13

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

6/11:安装git(2.33.0)

下载并安装

https://git-scm.com/download/win

7/11:拉取代码

创建SSH证书

使用Git命令窗口,创建拉取源码的SSH证书。

ThingsKit开发指南-开发环境搭建(后端)
ssh-keygen -t ed25519 -C "i@thingsKit.com"    #不要使用中文

效果图

ThingsKit开发指南-开发环境搭建(后端)

提供SSH公钥

提供SSH公钥给ThingsKit对接人员,为你提供源码拉取权限。

从Git仓库拉取源码

产品Git仓库包括:服务端、服务端管理页面、组态、大屏和移动端等。

ThingsKit开发指南-开发环境搭建(后端)

8/11:安装idea(2022.2.1)

下载并安装

https://www.jetbrains.com/idea/

配置git

配置git的可执行文件路径。

ThingsKit开发指南-开发环境搭建(后端)

idea安装插件

使用快捷键CTRL+ALT+S打开idea配置窗口,选择Plugins菜单,搜索并安装下列清单中的插件。

  1. Protobuf Generator-proto管理插件
  2. Protocol Buffers-proto管理插件
  3. gittoolbox-git备注插件
  4. Docker-用于管理docker服务端
ThingsKit开发指南-开发环境搭建(后端)

配置用户参数

💡 提示

prof单文件大于idea默认允许加载的文件大小,idea会报假错。

ThingsKit开发指南-开发环境搭建(后端)

如图打开idea的配置文件idea.properties在文件中添加如下信息。


# 允许加载的文件大小,解决profbuf对象报错问题
idea.max.intellisense.filesize=20480

9/11:创建ThingsKit数据库

利用数据库管理工具(例如:navicat),远程连接数据库。创建数据库实例。

ThingsKit开发指南-开发环境搭建(后端)

10/11:运行ThingsKit服务端程序

导入项目

💡提示

源码包的文件目录(绝对路径)不能包含中文。

将后端源码包导入idea。

ThingsKit开发指南-开发环境搭建(后端)

idea配置java编译器版本

快捷键CTRL+ALT+S进入idea的设置页面。修改Java Compiler编译时使用的jdk版本。

ThingsKit开发指南-开发环境搭建(后端)

idea配置maven

配置maven编译时使用的JDK版本。

ThingsKit开发指南-开发环境搭建(后端)

idea配置NodeJs

指定Thingsboard的前端模块ui-ngx使用的NodeJs版本。

ThingsKit开发指南-开发环境搭建(后端)

idea配置Docker(可选)

maven插件dockerfile-maven-plugin在编译docker镜像时需要Docker的支持。工具中可根据实际情况配置线上或者本机的docker。

ThingsKit开发指南-开发环境搭建(后端)

修改数据源配置

💡 提示

pgsql安装扩展模块timescaleDb后,选项timescale才可用。

配置文件thingsboard.yml修改 postgresql连接信息

ThingsKit开发指南-开发环境搭建(后端)

上传依赖文件

💡 提示

部分依赖国内没有,访问国外下载资源很慢或者根本无法下载。需要讲依赖包解压到对应目录

依赖包:fetched

v3.2.zip

v3.4.zip

将依赖包解压后放入目录Users\当前用户\.pkg-cache下。

前端模块(msa/js-executor、ui-ngx)执行命令yarn pkg时需要用到。

ThingsKit开发指南-开发环境搭建(后端)

依赖包:frontend-maven-plugin

frontend-maven-plugin.zip

将依赖包解压后放入maven库的目录com\github\eirslett下。

ThingsKit开发指南-开发环境搭建(后端)

maven多环境配置

下图中的profile是默认选中的环境配置。

ThingsKit开发指南-开发环境搭建(后端)

编译项目(加载依赖包)

💡 提示

JDK或NodeJs升级,需要删除项目内的.idea文件夹并重新导入项目,idea内的版本信息才会与环境变量内配置的版本信息一致。

💡 提示

前端编译容易出错,建议优先编译基于NodeJs实现的模块ui-ngxmsa/js-executor两个模块。

编译可以使用命令窗口执行命令,也可以使用idea右侧的编译工具窗口点击命令执行。

编译(2选1):可视化

ThingsKit开发指南-开发环境搭建(后端)

编译(2选1):命令行

使用idea的Terminal窗口执行命令

mvn clean install -DskipTests -e

效果图

ThingsKit开发指南-开发环境搭建(后端)

数据初始化

💡 提示

运行脚本前需要先手动创建号数据库实例。

ThingsKit开发指南-开发环境搭建(后端)

修改配置文件

💡 提示

至少需要对配置文件中【数据库】相关的配置文件进行修改。

# SQL DAO Configuration
spring:
  data:
    jpa:
      repositories:
        enabled: "true"
  jpa:
    properties:
      javax.persistence.query.timeout: "${JAVAX_PERSISTENCE_QUERY_TIMEOUT:30000}"
    open-in-view: "false"
    hibernate:
      ddl-auto: "none"
    show-sql: "false"
    database-platform: "${SPRING_JPA_DATABASE_PLATFORM:org.hibernate.dialect.PostgreSQLDialect}"
  datasource:
    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:532/thingskit}"
    username: "${SPRING_DATASOURCE_USERNAME:postgres}"
    password: "${SPRING_DATASOURCE_PASSWORD:postgres}"
    hikari:
      maximumPoolSize: "${SPRING_DATASOURCE_MAXIMUM_POOL_SIZE:16}"

启动项目

💡 提示

第一次运行项目时,会提示命令行太长。需要修改下运行的配置。

ThingsKit开发指南-开发环境搭建(后端)点击项目的mainClass运行项目

ThingsKit开发指南-开发环境搭建(后端)

11/11:测试运行结果

控制台日志

当控制台输出如下内容表示项目启动成功

ThingsKit开发指南-开发环境搭建(后端)

接口文档:swagger页面

接口文档页面可以访问和超级管理员登录成功。

💡 提示

swagger访问地址:swagger-ui

超级管理员账号:sysadmin

超级管理员密码:Sysadmin@123