ThingsBoard詳細編譯指南2.4.3

ThingsBoard從零開始之編譯

一、安裝準備

Win10電腦一臺【thingsboard2.4.3】

二、所需軟件

IDEA、Navicat Premium、Git、Maven、Node、Fq軟件

三、環境配置

  1. Git

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

下載64-bit Git for Windows Setup.64位軟件並安裝,並配置Git全局環境變量。

 

cmd輸入git version,如果出現git version xxx.xxx.xx 表示成功。

    2.JDK

https://www.oracle.com/java/technologies/javase-jdk8-downloads.html下載jdk-8u251-windows-x64.exe並且安裝。打開cmd輸入java如果沒有反應,就配置java的環境變量。

JAVA_HOME和Path。然後再打開CMD輸入java和javac

    3.MAVEN

http://maven.apache.org/download.cgi下載apache-maven-3.6.3-bin.zip

解壓到文件夾中。文件目錄儘量不要包含中文。

然後配置Maven的環境變量。MAVEN_HOME和Path,參考java的環境變量配置。

然後打開CMD輸入mvn -v查看mvn版本,如果有maven信息表示maven安裝完畢。

接下來配置maven的鏡像。

打開\Program Files\apache-maven-3.6.3\conf\setting.xml

找到mirrors標籤的位置,把下邊的mirror複製進去。

     <mirror>        

          <id>alimaven</id>        

          <name>aliyun maven</name>        

          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>        

          <mirrorOf>central</mirrorOf>

          </mirror>

           <mirror>

      <!--This sends everything else to /public -->

      <id>nexus</id>

      <mirrorOf>*</mirrorOf>     

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

    </mirror>

    <mirror>

      <!--This is used to direct the public snapshots repo in the

          profile below over to a different nexus group -->

      <id>nexus-public-snapshots</id>

      <mirrorOf>public-snapshots</mirrorOf>

     <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>

    </mirror>

    4.Node

https://nodejs.org/zh-cn/download/ 下載windows64位安裝包,然後安裝,它會自動把node添加到環境變量中。安裝完成後打開CMD,輸入node -v、npm -v

然後給node配置淘寶鏡像

npm install -g mirror-config-china --registry=http://registry.npm.taobao.org

四、編譯步驟

1)工作空間

新建工作空間workspace-thingsboard

2)克隆代碼

在工作空間中鼠標右鍵Git Bash Herer

輸入

git clone https://github.com/thingsboard/thingsboard.git 


克隆代碼到工作空間,然後查看所有分支,並切換到2.4的分支。

git branch -a

git checkout origin/release-2.4

3)修改源碼

用IDEA(以管理員啓動)打開源碼。

4.3.1 修改node和npm版本

Ctrl Shift F全局搜索代碼nodeVersion共有三處地方的pom文件需要修改

 

這裏的nodeVersion和npmVersion要改成cmd中node -v 和npm -v出來的版本。

4.3.2 註釋License

找到thingsboard根目錄的pom註釋com.mycila這個插件

 

4.3.3 註釋assembly

找到msa/js-executor底下的pom文件,註釋maven-assembly-plugin這個插件

 

4)編譯源碼

以管理員身份啓動CMD,進入thingsboard目錄,輸入

mvn clean install -DskipTests

 

五、常見問題

1)進程未殺死導致資源被佔用

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project ui: Failed to clean project: Failed to delete F:\workspace\thingsboard\thingsboard\ui\target\node\node.exe -> [Help 1]

二次編譯時要先打開任務管理器,進入詳細任務,搜索node和java,並且殺死這兩個進程

 

或者在cmd中輸入

taskkill /f /im java

taskkill /f /im node

2)Git未配置環境變量

npm ERR! path git

npm ERR! code ENOENT

npm ERR! errno ENOENT

npm ERR! syscall spawn git

npm ERR! enoent Error while executing:

npm ERR! enoent undefined ls-remote -h -t git://github.com/fabiobiondi/angular-

3)License 檢查不通過

註釋thingsboard根目錄pom中的license插件

4)非Server UI模塊報錯

一般情況下都是網絡問題

這些模塊報錯可能需要fq軟件,tb依賴了一些國外的jar包。

看報錯信息提示,適當的加入 -X -rf命令進行調試

-X是以debug模式查看mvn構建 -rf是從指定報錯的模塊開始編譯,可以省去很多時間,專注於處理報錯的模塊。

如:

mvn clean install -DskipTests  -X -rf :tb

mvn clean install -DskipTests  -X -rf :black-box-tests

切記,每次編譯都要清理內存中的進程。

5)Server UI模塊報錯

npm install -g mirror-config-china --registry=http://registry.npm.taobao.org        #使用淘寶鏡像

npm config get registry       #查詢當前鏡像

npm config rm registry                                                              #刪除自定義鏡像,使用官方鏡像

npm info express
  1. 首先要檢查pom中的nodeVersion是否替換,其次檢查當前node使用的鏡像源是否爲淘寶。
  2. 檢查ui文件夾中的target/node中的node.exe是否正常。並刪除 ui 目錄下面的 node_modules 文件夾
  3. 清理node緩存,在cmd中執行
npm cache clean -f

如果報錯了,切記重啓電腦之後,再次進入,因爲殺死node進程之後,緩存可能還存在被佔用的情況。

  1. 執行
    npm update

     

  2. 執行
    mvn clean install -DskipTests  -X -rf :ui

     

  3. 也可以單獨進入ui目錄,執行npm install進行單獨調試,如果那個模塊報錯了,如node-sass報錯了,就單獨執行npm install node-sass查看具體錯誤信息,一個一個模塊進行解決排查

 

Tip可能存在的問題:

  1. 確保ui目錄的權限,是用戶完全控制狀態,有可能會因爲權限問題,無法刪除某些文件,而導致報錯。
  2. 缺少windows構建插件

MSBUILD : error MSB3428: 未能加載 Visual C++ 組件“VCBuild.exe”。要解決此問題,1) 安裝 .NET Framework 2.0 SDK;2) 安裝 Microsoft Visual Studio 2005;或 3) 如果將該組件安裝到了其他位置,請將其位置添加到系統路徑中。

npm install --global --production windows-build-tools

這個問題會導致node-sass編譯失敗。

  1. Target中的node不可用,可以連上外網進行下載編譯

設置node代理,打開fq軟件,搜索電腦的proxy,查看代理服務器ip和端口

npm config set http-proxy 127.0.0.1:31233

npm config set prox=http://127.0.0.1:31233

注意要及時刪除代理

npm config list

npm config delete proxy

npm config delete proxy-http

6)找不到org.thingsboard.server.gen.js.xxx

在編譯完成後,重新

mvn clean

mvn clean install -DskipTests

六、社區熱線

推薦兩個thingsboard的社區,非常之無措,大家異常活躍。

http://www.iothi.cn/

https://www.iotschool.com/

QQ羣

726442610

121202538

 

最後貼圖鎮樓:祝大家都能編譯成功早日踏上tb的大軍!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章