站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        go module是什么?怎么用?(附使用示例)

        本文由golang教程欄目給大家介紹關(guān)于go module的使用方法,希望對(duì)需要的朋友有所幫助!

        go module 使用

        go module 在 go 1.14 版本之后被推出

        一、go module 使用介紹

        go module是Go1.11版本之后官方推出的版本管理工具,并且從Go1.13版本開始,go module將是Go語言默認(rèn)的依賴管理工具。

        1.1 GO111MODULE

        要啟用go module支持首先要設(shè)置環(huán)境變量GO111MODULE,通過它可以開啟或關(guān)閉模塊支持,它有三個(gè)可選值:offonauto,默認(rèn)值是auto

        • GO111MODULE=off禁用模塊支持,編譯時(shí)會(huì)從GOPATHvendor文件夾中查找包。

        • GO111MODULE=on啟用模塊支持,編譯時(shí)會(huì)忽略GOPATHvendor文件夾,只根據(jù) go.mod下載依賴,將依賴下載至%GOPATH%/pkg/mod/ 目錄下。

        • GO111MODULE=auto,當(dāng)項(xiàng)目在$GOPATH/src外且項(xiàng)目根目錄有go.mod文件時(shí),開啟模塊支持。

        簡單來說,設(shè)置GO111MODULE=on之后就可以使用go module了,以后就沒有必要在GOPATH中創(chuàng)建項(xiàng)目了,并且還能夠很好的管理項(xiàng)目依賴的第三方包信息。

        使用 go module 管理依賴后會(huì)在項(xiàng)目根目錄下生成兩個(gè)文件go.modgo.sum

        1.2 GOPROXY

        Go1.11之后設(shè)置GOPROXY命令為:

        export GOPROXY=https://goproxy.cn

        Go1.13之后GOPROXY默認(rèn)值為https://proxy.golang.org,在國內(nèi)是無法訪問的,所以十分建議大家設(shè)置GOPROXY,這里我推薦使用goproxy.cn。

        go env -w GOPROXY=https://goproxy.cn,direct

        1.3 go mod命令

        常用的go mod命令如下:

        go mod download    下載依賴的module到本地cache(默認(rèn)為$GOPATH/pkg/mod目錄) go mod edit        編輯go.mod文件 go mod graph       打印模塊依賴圖 go mod init        初始化當(dāng)前文件夾, 創(chuàng)建go.mod文件 go mod tidy        增加缺少的module,刪除無用的module go mod vendor      將依賴復(fù)制到vendor下 go mod verify      校驗(yàn)依賴 go mod why         解釋為什么需要依賴

        1.4 go.mod

        go.mod文件記錄了項(xiàng)目所有的依賴信息,其結(jié)構(gòu)大致如下:

        module github.com/Q1mi/studygo/blogger  go 1.12  require (     github.com/DeanThompson/ginpprof v0.0.0-20190408063150-3be636683586     github.com/gin-gonic/gin v1.4.0     github.com/go-sql-driver/mysql v1.4.1     github.com/jmoiron/sqlx v1.2.0     github.com/satori/go.uuid v1.2.0     google.golang.org/appengine v1.6.1 // indirect )

        其中,

        • module用來定義包名
        • require用來定義依賴包及版本
        • indirect表示間接引用

        1.4.1 依賴的版本

        go mod支持語義化版本號(hào),比如go get foo@v1.2.3,也可以跟git的分支或tag,比如go get foo@master,當(dāng)然也可以跟git提交哈希,比如go get foo@e3702bed2。關(guān)于依賴的版本支持以下幾種格式:

        gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 gopkg.in/vmihailenco/msgpack.v2 v2.9.1 gopkg.in/yaml.v2 <=v2.2.1 github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e latest

        1.4.2 replace

        在國內(nèi)訪問golang.org/x的各個(gè)包都需要翻墻,你可以在go.mod中使用replace替換成github上對(duì)應(yīng)的庫。

        replace (     golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac => github.com/golang/crypto v0.0.0-20180820150726-614d502a4dac     golang.org/x/net v0.0.0-20180821023952-922f4815f713 => github.com/golang/net v0.0.0-20180826012351-8a410e7b638d     golang.org/x/text v0.3.0 => github.com/golang/text v0.3.0 )

        1.5 go get

        在項(xiàng)目中執(zhí)行go get命令可以下載依賴包,并且還可以指定下載的版本。

        1. 運(yùn)行go get -u將會(huì)升級(jí)到最新的次要版本或者修訂版本(x.y.z, z是修訂版本號(hào), y是次要版本號(hào))
        2. 運(yùn)行go get -u=patch將會(huì)升級(jí)到最新的修訂版本
        3. 運(yùn)行go get package@version將會(huì)升級(jí)到指定的版本號(hào)version

        如果下載所有依賴可以使用go mod download命令。

        1.6 整理依賴

        我們?cè)诖a中刪除依賴代碼后,相關(guān)的依賴庫并不會(huì)在go.mod文件中自動(dòng)移除。這種情況下我們可以使用go mod tidy命令更新go.mod中的依賴關(guān)系。

        1.7 go mod edit

        格式化

        因?yàn)槲覀兛梢允謩?dòng)修改go.mod文件,所以有些時(shí)候需要格式化該文件。Go提供了一下命令:

        go mod edit -fmt

        添加依賴項(xiàng)

        go mod edit -require=golang.org/x/text

        移除依賴項(xiàng)

        如果只是想修改go.mod文件中的內(nèi)容,那么可以運(yùn)行go mod edit -droprequire=package path,比如要在go.mod中移除golang.org/x/text包,可以使用如下命令:

        go mod edit -droprequire=golang.org/x/text

        關(guān)于go mod edit

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 成人国产精品动漫欧美一区| 亚洲国模精品一区| 一本一道久久精品综合| 亚洲精品中文字幕乱码三区| 国产成人1024精品免费| 91精品最新国内在线播放| 无码乱码观看精品久久| 92国产精品午夜福利免费| 国产成人亚洲合集青青草原精品 | 日韩精品真人荷官无码| 囯产精品一区二区三区线| 91精品成人免费国产| 亚洲国产成人一区二区精品区| 久久精品国产欧美日韩| 2021国产成人精品久久| 久久精品国产91久久综合麻豆自制 | 老司机亚洲精品影院无码| 亚洲国产精品人人做人人爱| 久久久久久国产精品无码下载| 国产色婷婷精品综合在线| 日本精品久久久中文字幕| 国产精品亚洲精品观看不卡| 国产精品人成在线播放新网站 | 亚洲精品自产拍在线观看| 免费精品精品国产欧美在线欧美高清免费一级在线 | 婷婷久久精品国产| 精品久久久久久国产牛牛app| 国产成人精品一区在线| 2021国产三级精品三级在专区| 久久这里只精品国产99热| 国产成人精品综合网站| 国产精品亚洲片夜色在线| 99国产精品久久久久久久成人热| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 四虎亚洲国产成人久久精品| 久久精品国产国产精品四凭| 国产精品99久久久久久www| 国产成人精品免高潮在线观看| 99熟女精品视频一区二区三区| 国产成人精品免费大全| 国产亚洲精品资在线|