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

來源:互聯網
上載者:User

依賴管理這一路

最開始選擇使用 govendor 作為項目的依賴管理。原因是對比了 Godoc 推薦的幾個依賴管理工具,govendor 跟其他幾個工具相比,目錄最乾淨,只有一個 vendor 檔案夾。(而且當時選用的 web 架構 gin 也使用了 govendor)

後來在同事的推薦下更換了“官方”的 dep,從 govendor 無痛切換為 dep。項目目錄下多了兩個討厭的 Gopkg.* 檔案。之前瞭解的 Go 語言最佳實務並不包含這種首字母大寫的檔案命名方式。但是還是用了下來,誰讓是“官方”出品呢。(後來瞭解到 dep 是官方社區的產物)

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

這次 vgo 並沒有直接體驗,聽說 vgo 最後是要合并到 go tool 工具鏈中的。並且發現會在 go 1.11 版本中在2018年8月發布。於是沉下心,等合并到 go tool 中之後再體驗。

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

安裝 golang beta 版

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

go get -v golang.org/dl/go1.11beta3go1.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檔案。如果發現了這個檔案,說明已經初始化成功。這個檔案因為沒有同步依賴關係,所以檔案裡只有一行,就是項目目錄

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

建立依賴關係

執行以下命令會自動分析項目裡的依賴關係同步到go.mod檔案中,同時建立go.sum檔案

go1.11beta3 mod tidy

在日後的開發工作中,直接使用這個命令就可以增刪同步依賴關係。

使用 vendor 檔案夾

以上的管理依賴管理操作,所以依賴包還是在GOPATH/src目錄下,go module 當然可以把包直接放在當前項目中管理。

go1.11beta mod vendor

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.