Thingsboard3.6源码编译启动问题

1、JDK

ThingsBoard从3.2.2之后将JDK更新到11版本,所以要准备好JDK11的环境。我目前安装了java8,参考了这个安装了java11.
在这里插入图片描述

2、node、npm、yarn

与web-ui中pom.xml中保持一致,或者将版本号改为与本机环境一致

<groupId>org.thingsboard.msagroupId>
<artifactId>web-uiartifactId>
<packaging>pompackaging>
    
<plugin>
  <groupId>com.github.eirslettgroupId>
  <artifactId>frontend-maven-pluginartifactId>
  <configuration>
      <installDirectory>targetinstallDirectory>
      <workingDirectory>${basedir}workingDirectory>
  configuration>
  <executions>
      <execution>
          <id>install node and yarnid>
          <goals>
              <goal>install-node-and-yarngoal>
          goals>
          <configuration>
              <nodeVersion>v16.15.1nodeVersion>
              <yarnVersion>v1.22.17yarnVersion>
          configuration>
      execution>
      <execution>
          <id>yarn installid>
          <goals>
              <goal>yarngoal>
          goals>
          <configuration>
              <arguments>installarguments>
          configuration>
      execution>
      <execution>
          <id>yarn pkgid>
          <goals>
              <goal>yarngoal>
          goals>
          <phase>compilephase>
          <configuration>
              <arguments>run pkgarguments>
          configuration>
      execution>
  executions>
plugin>

3、maven安装

使用3.6以上版本,个人安装的3.9.4版本

4、IDE配置

IDE使用的是idea。Maven使用的是idea自带的maven。将项目导入idea

  1. 指定JDK版本
    包括platform的、项目的、module的、maven的、compile的。

  2. 安装插件
    包括Protobuf相关插件、Lombok。一般Lombok插件都不会出现什么问题。这里说下Protobuf相关插件。
    可以选择使用Protocol Buffers

  3. 修改IDE属性
    有个proto文件生成的java代码过大(TransportProtos),默认是不会解析的。需要编辑ide的属性(Help-Edit Custom Properties),加入idea.max.intellisense.filesize=5000将上限提高到5M

  4. 配置maven版本

5、编译过程问题

  1. Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:yarn

问题说明:thingsboard的UI下面pom文件中的npm和node版本,与本地安装的版本不匹配

解决方法:运行npm -v和node -v、yarn -v,查看已安装的node、npm、yarn版本,并将ui底下的pom文件中的npm和node版本替换掉

  1. github上的依赖包无法下载 Empty reply from server

问题说明:前端包会依赖开源的第三方包,github下载不下来

解决方法:将第三方包同步到内网gitlab上,修改package.json中的依赖地址

  1. maven依赖包无法下载

问题说明:后台jar或者maven组件下载速度过慢

解决方法:修改maven镜像仓库地址

<mirror>
      <id>nexus-aliyunid>
      <mirrorOf>*mirrorOf>
      <name>Nexus aliyunname>
      <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
    mirror>
    <mirror>
      <id>centralid>
      <name>aliyun centralname>
      <url>https://maven.aliyun.com/repository/centralurl>
      <mirrorOf>centralmirrorOf>
    mirror>
    <mirror>
      <id>googleid>
      <name>aliyun googlename>
      <url>https://maven.aliyun.com/repository/googleurl>
      <mirrorOf>googlemirrorOf>
    mirror>
    <mirror>
      <id>publicid>
      <name>aliyun publicname>
      <url>https://maven.aliyun.com/repository/publicurl>
      <mirrorOf>publicmirrorOf>
    mirror>
    <mirror>
      <id>gradle-pluginid>
      <name>aliyun gradle-pluginname>
      <url>https://maven.aliyun.com/repository/gradle-pluginurl>
      <mirrorOf>gradle-pluginmirrorOf>
    mirror>
    <mirror>
      <id>springid>
      <name>aliyun springname>
      <url>https://maven.aliyun.com/repository/springurl>
      <mirrorOf>springmirrorOf>
    mirror>
    <mirror>
      <id>spring-pluginid>
      <name>aliyun spring-pluginname>
      <url>https://maven.aliyun.com/repository/spring-pluginurl>
      <mirrorOf>spring-pluginmirrorOf>
    mirror>
    <mirror>
      <id>grails-coreid>
      <name>aliyun grails-corename>
      <url>https://maven.aliyun.com/repository/grails-coreurl>
      <mirrorOf>grails-coremirrorOf>
    mirror>
    <mirror>
      <id>apache-snapshotsid>
      <name>aliyun apache-snapshotsname>
      <url>https://maven.aliyun.com/repository/apache-snapshotsurl>
      <mirrorOf>apache-snapshotsmirrorOf>
    mirror>
    
    <mirror>
      <id>repo1id>
      <mirrorOf>centralmirrorOf>
      <name>Human Readable Name for this Mirror.name>
      <url>http://insecure.repo1.maven.org/maven2/url>
    mirror>
  1. protobuf插件
org.thingsboard.server.gen.transport.TransportProtos.* 

解决方法:打开idea菜单: File->setting->plugins 搜索 proto*, 安装 GenProtobuf 插件, 并重启

  1. Cannot resolve plugin org.apache.maven.plugins:maven-install-plugin:3.0.0-M1

    问题说明:主要是由于插件都写在 pom文件的 标签下。这个标签下,Maven是不会去中央仓库下载依赖的,所以标红

    解决方法:将插件的坐标,从标签复制到 标签下,然后Maven就会去仓库找插件下载啦,下载完成后,再删除标签下的插件坐标,即可解决问题

  2. 无效的标记: --release

​ 问题说明:java编译器的jdk版本未指定到11导致

​ 解决方法:将Preferences | Build, Execution, Deployment | Compiler | Java Compiler 中 project bytecode version选择11

  1. Cannot resolve plugin org.thingsboard:gradle-maven-plugin:1.0.11

​ 问题说明:因为依赖的包没有下载下来org.gradle:gradle-tooling-api:jar:7.1.1 was not found

​ 解决方法:如果maven拉不下来,手动到https://developer.aliyun.com/mvn/search 下载jar以及pom.xml到仓库中

  1. maven present, but unavailable

​ 问题说明:maven仓库中包不可使用

​ 解决方法:手动删除后重新下载

6、数据库初始化

1.将dao文件夹下sql文件拷贝至data下
2.运行ThingsboardInstallApplication

你可能感兴趣的:(物联网)