偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Go 語(yǔ)言各個(gè)版本支持 Go Modules 的演進(jìn)史

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

?01 介紹

Go 語(yǔ)言在 v1.11 開(kāi)始支持 Modules,本文我們介紹一下 Go 語(yǔ)言各個(gè)版本支持 Go Modules 的演進(jìn)史。

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

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

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

02 Go Modules 演進(jìn)史

Go v1.11

從 Go v1.11 開(kāi)始支持 Go Moduls。

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

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

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

Go v1.13

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

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

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

go get 的變化:

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

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

go get -u -t ./... 從模塊根升級(jí)模塊的所有直接和間接依賴(lài)項(xiàng),而且還會(huì)升級(jí)測(cè)試依賴(lài)項(xiàng)。

Go v1.14

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

當(dāng)主模塊包含一個(gè)頂級(jí) vendor? 目錄,并且它的 go.mod? 文件指定 go 1.14? 或更高版本時(shí),對(duì)于支持 -mod=vendor? 的 go? 命令,將默認(rèn)添加 -mod=vendor。

Go v1.15

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

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

Go v1.16

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

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

注意:在 Modules? 模式 go get? 不再用于構(gòu)建或安裝包,而是專(zhuān)門(mén)用于調(diào)整 go.mod? 中的依賴(lài)項(xiàng),如果在模塊外執(zhí)行 go get? 將會(huì)報(bào)錯(cuò),因?yàn)闆](méi)有可更新的 go.mod? 文件;在 GOPATH? 模式(GO111MODULE=off?) go get 仍然構(gòu)建和安裝包。

03 總結(jié)

本文我們介紹 Go Modules 模式在 Go 語(yǔ)言各個(gè)版本中的演進(jìn)史,限于篇幅,僅介紹的在使用時(shí)常用操作的變化,我們最后做一下總結(jié):

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

責(zé)任編輯:武曉燕 來(lái)源: Golang語(yǔ)言開(kāi)發(fā)棧
相關(guān)推薦

2014-06-23 09:49:32

Go語(yǔ)言Android谷歌

2018-03-12 22:13:46

GO語(yǔ)言編程軟件

2022-04-06 08:19:13

Go語(yǔ)言切片

2012-10-08 09:25:59

GoGo語(yǔ)言開(kāi)發(fā)語(yǔ)言

2012-03-30 14:15:50

GoogleGo

2021-02-25 15:51:41

Go語(yǔ)言模糊測(cè)試功能

2014-07-14 15:51:08

AndroidGO語(yǔ)言

2021-05-29 10:20:54

GoModules語(yǔ)言

2014-07-15 11:16:17

Go語(yǔ)言

2023-12-30 10:22:57

Go語(yǔ)言函數(shù)開(kāi)發(fā)

2014-10-31 09:48:36

Go語(yǔ)言

2021-09-15 10:00:33

Go語(yǔ)言Modules

2022-03-13 23:51:39

Web項(xiàng)目Go

2022-01-10 23:54:56

GoMap并發(fā)

2018-09-20 17:30:01

2023-12-21 07:09:32

Go語(yǔ)言任務(wù)

2011-01-05 10:58:05

Google Go

2021-04-13 07:58:42

Go語(yǔ)言函數(shù)

2021-04-07 09:02:49

Go 語(yǔ)言變量與常量

2023-06-26 00:03:55

Go語(yǔ)言類(lèi)型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)