關於作者
- 漢小鋒(harmful-chan)
- email: 1148706823@qq.com
- blog: https://www.cnblogs.com/harmful-chan/
- 轉載請注明出處:https://www.cnblogs.com/harmful-chan/p/12193225.html
工具准備:
git 2.16.2 windows命令行版
java jdk 1.8:https://www.cnblogs.com/harmful-chan/p/12193497.html
maven 3.6.3:https://www.cnblogs.com/harmful-chan/p/12193579.html
nvm 1.1.7:https://www.cnblogs.com/harmful-chan/p/12193611.html
nodejs10.16.0
npm 6.9.0
數據庫准備:
postgreSQL 9.5.20:介紹安裝及配置
安裝nodejs部件
npm install -g cross-env npm install -g webpack npm install -g gulp
拉取源碼
進入自定義目錄右擊鼠標點擊Git Bash Here(裝完Git之后才會出現)。
注意:目錄千萬不要有空格或者中文,nvm不支持。
git clone https://github.com/thingsboard/thingsboard.git
切換代碼分支到發布版
注意:一定要切換,不然會發生很多問題。
cd thingsboard
git branch -a //查看分支
git checkout release-2.4 //本機發布版最新是2.4建議用這個
屏蔽license驗證
(本機試過不屏蔽可以但為了方便還是屏蔽吧)
記事板打開thingsboard/pom.xml找到“license-maven-plugin”節點注釋掉,保存
修改thingsboard/ui/pom.xml的node和npm版本與本機對應
node -v //查看版本
npm -v //查看版本
跳過js-executor和web-ui的windows編譯
本地測試不需要,部署應用才需要打包,同時修改以下兩個文件,注釋掉這個插件
vim thingsboard/msa/js-executor/pom.xml
vim thingsboardmsa/web-ui/pom.xml
添加Maven倉庫
這一步很重要,其他倉庫或多或少少幾個包,導致編譯失敗
<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>
打包安裝
(等吧,每個20來分鍾編譯不玩)
mvn clean install -DskipTests -X //跳過編譯測試文件,編譯DEBUGE版,linux加上sudo
別人家的圖。。。
查看輸出文件thingsboard\application\target
.zip為可執行服務,下篇教如何使用。
注意:基本上面步驟不可能順利完成的,下面開始填坑。
1、必須用管理員身份打開cmd,編譯過程頻繁復制拷貝下載,一步錯要重新來過。如果不放心把文件夾的只讀權限去掉。
右擊thingsboard文件夾屬性,把只讀的勾勾去掉。這步用處不大,但好過沒有。
2、Thingsboard HTTP Transtorp [17/32] 發生錯誤,說xxx刪除不掉,打開控制,把正在運行的JAVA 虛擬機結束任務再編譯。
正常的話如果沒用運行過java應用,這個虛擬機都不會用到。
3.Thingsboard Server UI [22/32] 22還是23忘了,總之就是UI部件報錯 。npm ERR! errno: -4048, 之類的。
1、 刪除 C:\Users\{當前用戶名}\.npmrc文件 //這個是切換國內源用到的臨時文件,看別人刪我也刪了 2、 清空 C:\Users\{當前用戶名}\AppData\Roaming\npm-cache //npm臨時緩存 3、 刪除 thingsboard\ui\node_modules目錄 4、 運行 npm cache clean --force //清空緩存
5、 再次運行打包命令
4、maven錯誤,說下載不到xxx包更換源,再打包
5、其他錯誤,再找吧,一次不行試多兩次哈哈。
參考:
https://blog.csdn.net/liuli283/article/details/88376975
https://www.cnblogs.com/Qianwen-Li/p/11562348.html
https://www.cnblogs.com/danny-djy/p/9051714.html