使用 Linux 子系統部署 Node、Gradle 項目的構建工具
最近的一個項目,由三個 Gradle「Java」工程以及一個 Node「Vue.js」工程組成。為了使用 Linux 下的各種工具提升效率,本文探討 Linux 子系統的使用及在該系統下,Java、Node.js、Gradle 等工具的配置。並在後一篇文章中,探討該項目的一鍵構建、打包腳本,從而根本上提升開發效率。
1. Windows 10 秋季創意者更新下的 Linux 子系統
我目前使用的操作系統是最新的 Windows 10 秋季創意者更新(Version 1709),打開 Microsoft Store 並搜索 Linux,然後選擇自己喜歡的 Linux 發行版安裝即可,我安裝的是 Ubuntu。
Linux 子系統安裝完畢後,使用開始屏幕找到相應應用的磁貼,並點擊打開;或者使用命令行,運行命令 bash
,均可打開已經安裝的 Linux 子系統。
2. 相關工具的部署要點
現在去各自的官方網站下載 Java、Node.js、Gradle 這三個工具所對應的 Linux 版本。其中 Java、Node.js 擁有獨立的 Linux 版本,Gradle 的 Windows、Linux 版本是一體的。
由於在啟動 Ubuntu 後,Windows 10 中的環境變數 PATH
已被自動添加至 Ubuntu 中,所以這些工具的安裝、以及添加環境變數有兩種方法:
- 這些工具直接在 Windows 下解壓,並添加至 Windows 系統環境變數中。工具的 Windows、Linux 版本由 Windows 統一管理,簡化操作、界面友好,並且 Gradle 只需添加一個環境變數。
- 工具的 Linux 版本移入 Ubuntu 中,並在其中添加 Ubuntu 環境變數。注意 Windows 的環境變數最先被檢索到,為避免衝突,Windows下的 Gradle 需進入 bin 目錄,刪掉用於 Linux 的 Gradle 腳本。
由於 Linux 子系統還是有少許不同,Windows 與 Linux 結合太緊密可能會出現 Bug,就算不是操作系統的 Bug,也可能由於工具未考慮到這樣的使用方式導致出現 Bug,比如對於一體化的 Gradle,我使用方法 1 時,Gradle 確實有偶發的 Bug,將 Gradle 獨立開來問題得以解決。
3. 部署並配置 Java、Node.js、Gradle 的環境變數
Java、Node.js、Gradle 下載完畢後,在 bash 中指向下載目錄,並將其複製到 home 目錄並解壓:
# 將工具從 Windows 目錄複製至 home 目錄中cp jdk-8u162-linux-x64.tar.gz /home/lml/soft/cp node-v9.5.0-linux-x64.tar.xz /home/lml/soft/cp gradle-4.5.1-bin.zip /home/lml/soft/cd /home/lml/soft/# 解壓縮各工具tar -zxvf jdk-8u162-linux-x64.tar.gz jdk1.8.0_162/tar xvJf node-v9.5.0-linux-x64.tar.xzunzip gradle-4.5.1-bin.zip#添加環境變數,使設置在當前窗口立即生效sudo vi /etc/profilesource /etc/profile
上述命令修改 /etc/profile
文件時,在該文件末尾新增如下腳本內容:
NODE_HOME=/home/lml/soft/node-v9.5.0-linux-x64JAVA_HOME=/home/lml/soft/jdk1.8.0_162GRADLE_HOME=/home/lml/soft/gradle-4.5.1export NODE_HOMEexport JAVA_HOMEexport GRADLE_HOMEPATH=$PATH:$JAVA_HOME/bin:$NODE_HOME/bin:$GRADLE_HOME/binexport PATH
腳本生效並執行後,在 bash 中可以看到上述三個工具均可識別成功:
從上圖可以看出,Windows 環境變數也在其中,也可通過在 /usr/bin
目錄下添加軟鏈接的方式,識別相關命令:
4. 使用 SDKMAN! 管理各開發工具
在參考 Gradle 的官方文檔時,官方推薦使用 SDKMAN! 安裝、管理 Gradle,SDKMAN! 用於多種版本開發工具的切換、安裝和卸載的工作,包括 Gradle、Java 等 Jvm 系的工具。由於未科學的上網,該工具速度不佳,不過通過文檔能看到該工具簡單易用。
參考鏈接
- Windows 10 內置 Linux 子系統初體驗
- Ubuntu 設置環境變數並立即生效
- 設置 Linux 環境變數的方法和區別 (Ubuntu)
- SDKMAN! 官網
- SDKMAN! 工具的使用
- SDKMAN! 簡明安裝教程
推薦閱讀:
※想學習nodejs 有什麼書可以推薦的?
※如何解釋Node.js下與瀏覽器環境代碼執行結果不一致的問題?
※Mozilla Rhino 和 Node.js 兼容嗎?
※node.js 入門請推薦本好的入門書籍?