剛開始,編譯thingsboard源碼時遇到很多問題,網上查了不少資料,走了不少彎路,現給自己梳理一下過程。
一、環境準備
筆記本電腦,windows 10 家庭版 64位;
1、安裝jdk1.8
下載相應的jdk1.8安裝文件,安裝後配置環境變量如下環境變量:
JAVA_HOME=C:\java\jdk1.8.0_144
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
PATH添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
2、安裝apache-maven-3.5.4
下載apache-maven-3.5.4,解壓文件後配置如下環境變量:
MAVEN_HOME=C:\java\apache-maven-3.5.4
MAVEN_OPTS=-Xms128m -Xmx1024m
PATH添加%MAVEN_HOME%\bin;
3、安裝Git-2.22.0-64-bit
下載Git-2.22.0-64-bit.exe,安裝後配置如下環境變量:
GIT_HOME=C:\Program Files\Git
PATH添加%GIT_HOME%\cmd;%GIT_HOME%\bin;
4、安裝eCos_node-v6.10.2-x64
下載eCos_node-v6.10.2-x64.msi,我的nodejs安裝在c:\java目錄,安裝後PATH添加了C:\java\nodejs\
5、安裝eclipse-2018.12(4.10)
到eclipse官網下載eclipse-SDK-4.10-win32-x86_64.zip,解壓到c:\java\eclipse目錄。
eclipse主要安裝瞭如下插件:
- eclipse marketplace插件(方便後面安裝其它插件)
- lombok插件
- maven插件
- subversion插件
- git插件
- spring tool插件
6、安裝postgresql及其管理工具
(1)下載postgresql-10.9-2-windows-x64.exe,按照安裝嚮導一步步安裝。
(2)安裝Navicat for PostgreSQL。
二、下載和編譯代碼
1、用git下載源碼
在cmd.exe中執行如下命令,從github中下載thingsboard源碼。
git clone https://github.com/thingsboard/thingsboard.git
2、將源碼切換到thingsboard-2.4版本
進入thingsboard目錄,然後執行下面三個命令:
git branch -a
git reset --hard HEAD
git checkout -b release-2.4 origin/release-2.4
2、初始化數據庫
(1)查看thingsboard\application\src\main\resources\thingsboard.yml中數據庫的配置
......
# SQL DAO Configuration
spring:
data:
jpa:
repositories:
enabled: "true"
jpa:
hibernate:
ddl-auto: "none"
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:5432/thingsboard}"
username: "${SPRING_DATASOURCE_USERNAME:postgres}"
password: "${SPRING_DATASOURCE_PASSWORD:postgres}"
......
(2)創建thingsboard數據庫
通過Navicat for PostgreSQL連接上PostgreSQL數據庫,根據上面的配置信息,創建thingsboard數據庫,用戶名和密碼都是postgres。
(3)初始化數據庫表
執行thingsboard\dao\src\main\resources\sql目錄中的四個SQL腳本:
數據庫一共建立了22個表。
3、修改thingsboard相關配置
(1)註釋thingsboard\pom.xml文件中有關license的配置信息,避免源碼編譯時出錯。
...
<!-- 註釋下述的配置項 -->
<!-- plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>3.0</version>
<configuration>
...
</configuration>
<executions>
...
</executions>
</plugin -->
....
<!-- plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
</plugin>
</plugins -->
(2)配置application\target\generated-sources\protobuf代碼自動生成
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
...
<configuration>
<sources>
<!--配置application\target\generated-sources\protobuf代碼自動生成-->
<!-- source>${basedir}/target/generated-sources</source -->
<source>${basedir}/target/generated-sources/grpc-java</source>
<source>${basedir}/target/generated-sources/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
...
3、編譯代碼
在cmd中,進入thingsboard目錄,並執行下面的命令:
mvn clean install -Dmaven.test.skip=true
三、用源碼運行系統
(1)將thingsboard代碼導入到eclipse。
(2)通過maven菜單的update project功能更新項目,不過application中的src/test/java中的很多類有錯誤,不管它。
(3)運行thingsboard。
在application中運行org.thingsboard.server.ThingsboardServerApplication(Run As Java Application)。
(4)訪問thingsboard系統
地址:http://localhost:8080
系統管理員:
密碼:sysadmin
租戶管理員:
密碼:tenant