欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用gomodule

這篇文章給大家分享的是有關(guān)如何使用go module的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

在九江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),九江網(wǎng)站建設(shè)費(fèi)用合理。

go module 使用

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

一、go module 使用介紹

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

1.1 GO111MODULE

要啟用go module支持首先要設(shè)置環(huán)境變量GO111MODULE,通過(guò)它可以開(kāi)啟或關(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í),開(kāi)啟模塊支持。

簡(jiǎn)單來(lái)說(shuō),設(shè)置GO111MODULE=on之后就可以使用go module了,以后就沒(méi)有必要在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,在國(guó)內(nèi)是無(wú)法訪問(wèn)的,所以十分建議大家設(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,刪除無(wú)用的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用來(lái)定義包名

  • require用來(lái)定義依賴包及版本

  • indirect表示間接引用

1.4.1 依賴的版本

go mod支持語(yǔ)義化版本號(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

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

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)的依賴庫(kù)并不會(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的更多用法可以通過(guò)go help mod edit查看。

1.8 在項(xiàng)目中使用go module

1.8.1 既有項(xiàng)目

如果需要對(duì)一個(gè)已經(jīng)存在的項(xiàng)目啟用go module,可以按照以下步驟操作:

  1. 在項(xiàng)目目錄下執(zhí)行go mod init,生成一個(gè)go.mod文件。

  2. 執(zhí)行go get,查找并記錄當(dāng)前項(xiàng)目的依賴,同時(shí)生成一個(gè)go.sum記錄每個(gè)依賴庫(kù)的版本和哈希值。

1.8.2 新項(xiàng)目

對(duì)于一個(gè)新創(chuàng)建的項(xiàng)目,我們可以在項(xiàng)目文件夾下按照以下步驟操作:

  1. 執(zhí)行go mod init 項(xiàng)目名命令,在當(dāng)前項(xiàng)目文件夾下創(chuàng)建一個(gè)go.mod文件。

  2. 手動(dòng)編輯go.mod中的require依賴項(xiàng)或執(zhí)行go get自動(dòng)發(fā)現(xiàn)、維護(hù)依賴。

二、包和調(diào)用文件在同一項(xiàng)目下

例如:

moduledemo
├── go.mod
├── main.go
└── mypackage
    └── mypackage.go  // package mp 定義包名為 mp

步驟:

1.在項(xiàng)目下創(chuàng)建一個(gè) go.mod 文件,文件名只能為這個(gè)。

2.在 go.mod 文件中添加以下代碼

module moduledemo  // 設(shè)定 moduledemo 為包根目錄名,可以隨意改變?cè)撁?,只需要?dǎo)入時(shí)一致就好
go 1.14  // 表明版本

3.導(dǎo)入想要的包文件

import "moduledemo/mypackage"  // 這里是導(dǎo)入包目錄下的包文件名

4.使用包文件

mp.MyPackage()  // 使用包中的 MyPackage() 函數(shù)

三、包和被調(diào)用文件不在同一個(gè)項(xiàng)目下

例如:

├── moduledemo
│   ├── go.mod
│   └── main.go
└── mypackage
    ├── go.mod
    └── mypackage.go  // package mp 定義包名為 mp

步驟

1.在 mypackage 下面創(chuàng)建 go.mod 文件,并添加以下代碼

module mypackage

go 1.14

2.在 moduledemo 下面創(chuàng)建 go.mod 文件,并添加以下代碼

module moduledemo

go 1.14


require mypackage v0.0.0  // 這個(gè)會(huì)在你執(zhí)行 go build 之后自動(dòng)在該文件添加
replace mypackage => ../mypackage  // 指定需要的包目錄去后面這個(gè)路徑中尋找

3.導(dǎo)入和使用

import "mypackage"  // 因?yàn)樵摪夸洷旧砭褪前募詿o(wú)需添加下一級(jí)路徑

mp.MyPackage()  // 使用包中的 MyPackage() 函數(shù)

感謝各位的閱讀!關(guān)于“如何使用go module”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

新聞名稱:如何使用gomodule
瀏覽地址:http://chinadenli.net/article26/giihcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司網(wǎng)站改版、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)