Go module 使用教程

2021-09-10 18:29:08 字數 1802 閱讀 4705

go module 介紹:

自go1.1.1版本發布(2018-08-24發布),從官方的部落格中看到,其中有個比較突出的特色就是module,模組概念。

module是乙個相關go包的集合,它是源**更替和版本控制的單元。模組由原始檔形成的go.mod檔案的根目錄定義,包含go.mod檔案的目錄也被稱為模組根。moudles取代舊的的基於gopath方法來指定在工程中使用哪些原始檔或匯入包。模組路徑是匯入包的路徑字首,go.mod檔案定義模組路徑,並且列出了在專案構建過程中使用的特定版本。

該功能到時候就可以移除對gopath和go get命令的支援。

go module 常用命令:

go mod init  #當前模組下初始化

go mod  tidy #新增缺失的模組以及移除無用的模組

go mod  verify #驗證依賴項是否達到預期的目的

go mod vendor #生成vendor資料夾

配置環境變數 go111module:

go111module它有三個可選值: off、 on、 auto,預設值是 auto。

1.go111module=off,無模組支援,go會從 gopath 和 vendor 資料夾尋找包。

3.go111module=auto,在 $gopath/src外面且根目錄有 go.mod檔案時,開啟模組支援。

go.mod 檔案:

go.mod檔案定義module路徑以及列出其他需要在build時引入的模組的特定的版本。

go.mod檔案會在go mod init 時會自動生成,當專案不在gopath下,需要go mod init [模組名];

在生成的go.mod檔案中,我們可以修改版本號如下方的v1.3.0,來指定版本

)還有一點需要注意的是,在國內訪問不少第三方包都需要科學上網:

我們可以在專案下 開啟cmd通過命令列設定**,然後再執行go mod的命令即可;

也可以在go.mod中使用replace替換成github上對應的庫。

具體使用步驟:

首先將你的go更新到1.11以上版本;

如果專案在gopath目錄下,設定系統環境變數go111module=on;

執行命令go mod init [模組名] 在當前目錄下生成乙個go.mod檔案;

如果你工程中存在一些不能確定版本的包,那麼生成的go.mod檔案可能就不完整,因此繼續執行下面的命令;

執行命令go mod vendor生成vendor資料夾,該資料夾下將會放置你go.mod檔案描述的依賴包,資料夾下同時還有乙個檔案modules.txt,它是你整個工程的所有模組。在執行這條命令之前,如果你工程之前有vendor目錄,應該先進行刪除。同理go mod vendor -v會將新增到vendor中的模組列印出來;

常見的命令如下,格式為 go mod  command:命令

解釋init -【模組名】

初始化modules

download

edit

從工具或指令碼中編輯go.mod檔案

graph

以文字模式列印模組需求圖

tidy

vendor

生成vendor目錄

verify

驗證依賴是否正確

why解釋為什麼需要包或模組

使用go module匯入本地包的方法教程詳解

go module 是go1.11版本之後官方推出的版本管理工具,並且從 go1.13 版本開始,go module 將是go語言預設的依賴管理工具。到今天 go1.14 版本推出之後 go modules 功能已經被正式推薦在生產環境下使用了。這幾天已經有很多教程講解如何使用 go module ...

Go module的介紹及使用

go1.1.1版本發布 2018 08 24發布 已經過去幾天,從官方的部落格中看到,有兩個比較突出的特色,乙個就是今天講的module,模組概念。目前該功能還在試驗階段,有些地方還需要不斷的進行完善。在官方正式宣布之前,打算不斷修正這種支援。到時候就可以移除對gopath和go get命令的支援。...

Go module的介紹及使用

go1.1.1版本發布 2018 08 24發布 已經過去幾天,從官方的部落格中看到,有兩個比較突出的特色,乙個就是今天講的module,模組概念。目前該功能還在試驗階段,有些地方還需要不斷的進行完善。在官方正式宣布之前,打算不斷修正這種支援。到時候就可以移除對gopath和go get命令的支援。...