自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go 語言各個版本支持 Go Modules 的演進史

開發(fā) 前端
從 Go v1.11? 開始支持 Go Modules? 模式,Go v1.13? 在(包含 $GOPATH/src? )任意目錄找到 go.mod? 文件,都開啟 Go Modules? 模式, Go v1.14? 推薦在生產(chǎn)環(huán)境使用,Go v1.16? 默認開啟 Go Modules 模式。

?01 介紹

Go 語言在 v1.11 開始支持 Modules,本文我們介紹一下 Go 語言各個版本支持 Go Modules 的演進史。

在之前的文章中,我們介紹過 Go Modules 的詳細使用方式,本文不再贅述,感興趣的讀者朋友們請查閱歷史文章。

使用 Go Modules 模式,一般分為以下幾個流程:

  1. go mod init? 創(chuàng)建一個新模塊,初始化 go.mod 文件。
  2. go build、go test、go run、go install? 等構建命令,向 go.mod 文件中添加模塊所需的依賴項。
  3. go list -m -json all 打印當前模塊的依賴項。
  4. go get 添加依賴項,或修改依賴項版本。
  5. go mod tidy 刪除未使用的依賴項。

02 Go Modules 演進史

Go v1.11

從 Go v1.11 開始支持 Go Moduls。

為了兼容使用 Go v1.11 之前的任意版本的項目,當設置 GO111MODULE=auto? 或 GO111MODULE=off? 時,Go v1.11 在 $GOPATH/src? 中,繼續(xù)使用 GOPATH 模式。

當設置 GO111MODULE=auto? 時,其它任意位置,如果當前目錄或父目錄包含 go.mod? 文件,則使用 Modules 模式。

注意:GO111MODULE? 包含三個模式,分別是 auto、on 和 off,其中默認值是 auto,即不顯式設置 GO111MODULE 的值,默認是 auto 模式。

Go v1.13

在 Go v1.13? 中,Go Modules 發(fā)生一些變化:

當設置 GO111MODULE=auto? 時,如果在任意位置找到 go.mod? 文件,則使用 Go Modules? 模式,即使在 $GOPATH/src 中。

注意:在 Go v1.13? 之前,即使 GO111MODULE=auto?,在 $GOPATH/src? 目錄中也不會啟動 Go Modules 模式。

go get 的變化:

go get -u (不包含任何參數(shù)),現(xiàn)在只升級當前包的直接和間接依賴,并且不再檢查整個模塊。

go get -u ./... 從模塊根升級模塊的所有直接和間接依賴項,現(xiàn)在排除測試依賴項。

go get -u -t ./... 從模塊根升級模塊的所有直接和間接依賴項,而且還會升級測試依賴項。

Go v1.14

從 Go v1.14 開始,模塊被認為可以用于生產(chǎn)環(huán)境,并且鼓勵所有用戶從其他依賴管理系統(tǒng)遷移到模塊。

當主模塊包含一個頂級 vendor? 目錄,并且它的 go.mod? 文件指定 go 1.14? 或更高版本時,對于支持 -mod=vendor? 的 go? 命令,將默認添加 -mod=vendor。

Go v1.15

模塊緩存的位置現(xiàn)在可以使用 GOMODCACHE? 環(huán)境變量進行設置。GOMODCACHE? 的默認值是 GOPATH[0]/pkg/mod?,這也是不支持使用 GOMODCACHE 環(huán)境變量進行設置之前的模塊緩存的位置。

注意:可以使用 GOPATH 環(huán)境變量設置多個目錄。

Go v1.16

模塊模式(GO111MODULE=on?)默認開啟,也就是說默認啟用 Go Modules? 模式,如果用戶想要使用 GOPATH? 模式,需要顯式設置 GO111MODULE=off? 或 GO111MODULE=auto?(并且需要在 $GOPATH/src 目錄)。

使用 go install pkg@version? 替換 go get pkg@version 全局安裝包和可執(zhí)行文件。

注意:在 Modules? 模式 go get? 不再用于構建或安裝包,而是專門用于調(diào)整 go.mod? 中的依賴項,如果在模塊外執(zhí)行 go get? 將會報錯,因為沒有可更新的 go.mod? 文件;在 GOPATH? 模式(GO111MODULE=off?) go get 仍然構建和安裝包。

03 總結

本文我們介紹 Go Modules 模式在 Go 語言各個版本中的演進史,限于篇幅,僅介紹的在使用時常用操作的變化,我們最后做一下總結:

從 Go v1.11?  開始支持 Go Modules? 模式,Go v1.13? 在(包含 $GOPATH/src? )任意目錄找到 go.mod? 文件,都開啟 Go Modules? 模式, Go v1.14? 推薦在生產(chǎn)環(huán)境使用,Go v1.16? 默認開啟 Go Modules 模式。

責任編輯:武曉燕 來源: Golang語言開發(fā)棧
相關推薦

2014-06-23 09:49:32

Go語言Android谷歌

2018-03-12 22:13:46

GO語言編程軟件

2022-04-06 08:19:13

Go語言切片

2012-10-08 09:25:59

GoGo語言開發(fā)語言

2012-03-30 14:15:50

GoogleGo

2014-07-14 15:51:08

AndroidGO語言

2021-02-25 15:51:41

Go語言模糊測試功能

2021-05-29 10:20:54

GoModules語言

2021-09-15 10:00:33

Go語言Modules

2014-07-15 11:16:17

Go語言

2014-10-31 09:48:36

Go語言

2023-12-30 10:22:57

Go語言函數(shù)開發(fā)

2022-01-10 23:54:56

GoMap并發(fā)

2022-03-13 23:51:39

Web項目Go

2018-09-20 17:30:01

2022-10-26 07:26:38

2021-07-30 07:28:15

WorkerPoolGo語言

2023-12-21 07:09:32

Go語言任務

2021-04-07 09:02:49

Go 語言變量與常量

2021-04-13 07:58:42

Go語言函數(shù)
點贊
收藏

51CTO技術棧公眾號