Go1.11 module 體驗(Go 11.1 beta 版)

依賴管理這一路

最開始選擇使用 govendor 做爲項目的依賴管理。緣由是對比了 Godoc 推薦的幾個依賴管理工具,govendor 跟其餘幾個工具相比,目錄最乾淨,只有一個 vendor 文件夾。(並且當時選用的 web 框架 gin 也使用了 govendor)git

後來在同事的推薦下更換了「官方」的 dep,從 govendor 無痛切換爲 dep。項目目錄下多了兩個討厭的 Gopkg.* 文件。以前瞭解的 Go 語言最佳實踐並不包含這種首字母大寫的文件命名方式。可是仍是用了下來,誰讓是「官方」出品呢。(後來瞭解到 dep 是官方社區的產物)github

dep 沒用多久,vgo 就來了。剛瞭解到 vgo 的時候專門去 dep 的 github 瞭解了一下。發現 dep 還在正常開發。對比 vgo 以後發現使用方式和命名方式大相徑庭。(兩個團隊分別的產物,相關八卦能夠自行 Google)。golang

此次 vgo 並無直接體驗,據說 vgo 最後是要合併到 go tool 工具鏈中的。而且發現會在 go 1.11 版本中在2018年8月發佈。因而沉下心,等合併到 go tool 中以後再體驗。web

vgo 和 go1.11beta2 及 go1.11beta3 的使用方式略有不一樣,本文直接以最新的 beta3 版本示例

安裝 golang beta 版

體驗 golang beta 版本比想象中要容易的多,直接輸入如下命令shell

go get -v golang.org/dl/go1.11beta3
go1.11beta3 download
beta 版本的 go 跟正式版本的 go 互不影響,使用beta版本的時候直接使用命令 go1.11beta3 run **方式

使用 go modules

在使用以前須要開啓gomodules,直接在 $GOPATH/src 目錄下執行如下命令,修改環境變量框架

export GO111MODULE=on

初始化

接下來咱們來初始化go modules,來到項目目錄下,執行命令工具

go1.11beta3 mod init

執行命令後,會在項目目錄下發現go.mod文件。若是發現了這個文件,說明已經初始化成功。這個文件由於沒有同步依賴關係,因此文件裏只有一行,就是項目目錄code

若是你的項目以前使用了 dep 或其餘依賴管理工具,那麼在首次使用 go mod的時候會自動同步依賴關係,並提示從某工具遷移到 go modules。這招果真漂亮,直接從其餘社區工具接管。

建立依賴關係

執行如下命令會自動分析項目裏的依賴關係同步到go.mod文件中,同時建立go.sum文件開發

go1.11beta3 mod tidy

在往後的開發工做中,直接使用這個命令就能夠增刪同步依賴關係。get

使用 vendor 文件夾

以上的管理依賴管理操做,因此依賴包仍是在GOPATH/src目錄下,go module 固然能夠把包直接放在當前項目中管理。

go1.11beta mod vendor

直接使用這個命令就能夠把GOPATH/src目錄下的依賴包同步到當前項目目錄中。

相關文章
相關標籤/搜索