前言

thingsboard在编译过程中的注意事项。

  1. 需要很多国外的依赖,有外网连接编译会更快更顺利!不会用梯仔的可以私我。
  2. 环境依赖的版本要求,要仔细核对!
  3. 编译过程中正在下载某些依赖,如果手动强行停止,要把当时未下载完的依赖删掉!
  4. 请勿占用8080,1883等相关端口。
  5. 一定要有耐心等待!

    依赖环境

  • jdk 1.8 以上

    1. wei@MacBook-Pro ~ % java -version
    2. java version "1.8.0_211"
    3. Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    4. Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
  • Maven 3.6 以上

    1. wei@MacBook-Pro ~ % mvn -v
    2. Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    3. Maven home: /Users/weijixin/Documents/code_tools/apache-maven-3.6.3
    4. Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre
    5. Default locale: zh_CN, platform encoding: UTF-8
    6. OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"
  • Postgresql 9 以上

    1. # docker方式安装单机开发环境
    2. docker run \
    3. -d \
    4. --name postgres \
    5. -p 5432:5432 \
    6. -e POSTGRES_USER=postgres \
    7. -e POSTGRES_PASSWORD=postgres \
    8. -v ~/docker/data/postgresql/data:/var/lib/postgresql/data \
    9. postgres
  • node

    1. wei@MacBook-Pro ~ % node -v
    2. v12.13.1
  • npm

    1. wei@MacBook-Pro ~ % npm -v
    2. 6.9.0
  • yarn ```shell

    npm 安装yarn命令

    wei@MacBook-Pro ~ % npm install -g yarn

wei@MacBook-Pro ~ % yarn -v 1.22.10

  1. - git
  2. ```shell
  3. wei@MacBook-Pro ~ % git --version
  4. git version 2.24.1 (Apple Git-126)
  • idea
    • lombok插件image.png
    • protobuf插件image.pngimage.png

      拉取源码

      1. git clone https://github.com/thingsboard/thingsboard.git
      GitHub加速clone ThingsBoard

      切换分支

      下载的代码是 master 主分支的,需要切换到稳定版本的分支。
      如果使用 git checkout release-3.2 切换的是最新tag v3.2.2 这个版本需要jdk11,
      这个需要注意,否则编译出现错误提示无效的标记: --release就是因为java版本不匹配导致。
      1. git checkout v3.2.1
      git tag 查看所有tag
      git branch查看当前分支
      git branch -a查看所有分支 (带星号的是当前分支,下面演示是已切换的)
      git checkout v3.2.1 切换到tag v3.2.1分支 ```shell wei@MacBook-Pro thingsboard % git branch -a master
  • release-3.2 remotes/origin/HEAD -> origin/master remotes/origin/develop/2.5.6 remotes/origin/develop/3.3 remotes/origin/develop/lwm2m remotes/origin/develop/snmp remotes/origin/feature/cassandra-partitions-cache remotes/origin/feature/queue remotes/origin/lwm2m_tests remotes/origin/master remotes/origin/release-1.0 remotes/origin/release-1.1 remotes/origin/release-1.2 remotes/origin/release-1.3 remotes/origin/release-1.4 remotes/origin/release-2.0 remotes/origin/release-2.2 remotes/origin/release-2.3 remotes/origin/release-2.4 remotes/origin/release-2.5 remotes/origin/release-3.0 remotes/origin/release-3.1 remotes/origin/release-3.2
    1. <a name="Um5Up"></a>
    2. ## Maven中央仓库设置
    3. ```shell
    4. <mirror>
    5. <id>repo1</id>
    6. <name>repo1 maven</name>
    7. <url>https://repo1.maven.org/maven2/</url>
    8. <mirrorOf>central</mirrorOf>
    9. </mirror>

    版本核对

    修改项目 node和yarn的版本号 和本机安装的一致
    ctrl + shift + F 全局搜索 ctrl + shift + R全局替换
    image.png
    搜索license-maven-plugin,将整个 plugin 都注释
    image.png

    开始编译

    进入项目根目录执行
    1. mvn clean install -DskipTests
    看到下图表示编译成功,每个项目耗时也可以看到有的确实比较久,所以编译过程要耐心!
    image.png

    数据库表自动导入

    根据需求选择数据库方案,参考数据库配置,下面是使用PostgreSQL储存所有数据的步骤。
    将dao模块resources下的sql文件夹复制到application模块的data文件夹下
    提前在postgres中创建数据库thingsboard
    image.png
    postgres数据库信息配置:
    修改application模块resources下的thingsboard.yml的datasource部分
    image.png执行application模块的ThingsboardInstallApplication 数据库表和数据就会自动生成。
    初次启动项目,很多有关表的问题:ts_kv未分区,缺少admin_settings表等都是由于没有进行这个步骤。
    image.png

    访问thingsboard

    localhost:8080
    用户名:sysadmin@thingsboard.org 密码为:sysadmin
    这是系统管理员界面,没有设备管理等其他选项卡。
    image.png
    在创建一个租户
    image.png
    租户下创建租户管理员用户
    image.png
    点击激活,输入密码后,就可以使用租户管理员账号登录了。
    image.png
    image.png
    自动跳转到此租户的管理界面了。
    image.png
    此时再放回刚刚系统管理员的界面进行操作会提示「禁止访问」,因为刚刚登陆了租户管理员,浏览器记录的登录信息已经变成了租户管理员的信息,当然不能访问系统管理员的界面。用系统管理员账号,重新登录即可。
    image.png

    编译问题

    Failure to find org.gradle:gradle-tooling-api:jar:6.3
    关键词.gutter.gutter-horizontal
    无效的标记:—release
    Failed to delete xxx/node.exe
    org.thingsboard.server.gen.*找不到解决方法
    以及ThingsBoard 3.2.2源码编译windows傻瓜版中列出的可能遇见的问题

小可爱点赞.gif