成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序

Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序

熱門標(biāo)簽:杭州人工智能電銷機(jī)器人費(fèi)用 赤峰電銷 400開(kāi)頭電話怎樣申請(qǐng) 谷歌美發(fā)店地圖標(biāo)注 地圖區(qū)域圖標(biāo)注后導(dǎo)出 利用地圖標(biāo)注位置 江蘇呼叫中心外呼系統(tǒng)有效果嗎 貴州電話智能外呼系統(tǒng) 官渡電銷外呼管理系統(tǒng)怎么收費(fèi)

vendor

vendor概念最早是由Keith提出,用來(lái)存放依賴包。在版本1.5出現(xiàn)。例如gb項(xiàng)目提供了一個(gè)名為gsftp的示例項(xiàng)目,它有一個(gè)gsftp程序,在標(biāo)準(zhǔn)庫(kù)之外有三個(gè)依賴項(xiàng)。golang.org/x/crypto/ssh, golang.org/x/crypto/ssh/agent和github.com/pkg/sftp。

按vendor概念調(diào)整的目錄結(jié)構(gòu)如下:

$GOPATH
|	src/
|	|	github.com/constabulary/example-gsftp/
|	|	|	cmd/
|	|	|	|	gsftp/
|	|	|	|	|	main.go
|	|	|	vendor/
|	|	|	|	github.com/pkg/sftp/
|	|	|	|	golang.org/x/crypto/ssh/
|	|	|	|	|	agent/

文件github.com/constabulary/example-gsftp/cmd/gsftp/main.go的引用如下所示,看起來(lái)和平時(shí)的引用沒(méi)什么區(qū)別。

import (
 ...
 "golang.org/x/crypto/ssh"
 "golang.org/x/crypto/ssh/agent"
 "github.com/pkg/sftp"
)

因?yàn)間ithub.com/constabulary/example-gsftp/vendor/golang.org/x/crypto/ssh存在,且正在編譯的文件位于以github.com/constabulary/example-gsftp為根的子樹(shù)中。則導(dǎo)入語(yǔ)句import "golang.org/x/crypto/ssh",編譯好像是import "github.com/constabulary/example-gsftp/vendor/golang.org/x/crypto/ssh",只不過(guò)這種較長(zhǎng)的形式從未寫(xiě)過(guò)。

因此github.com/constabulary/example-gsftp中的源代碼取決于vendor中有關(guān)golang.org/x/crypto/ssh的拷貝副本, 而不是$GOPATH中的其他地方。

vendor的層級(jí)搜索

規(guī)則是:

從引用文件所在的vendor路徑下面搜索,

如果沒(méi)有找到,那么從上層目錄的vendor路徑下面搜索,

直到src的vendor路徑下面搜索。

modules

Go 1.11版本支持臨時(shí)環(huán)境變量GO111MODULE,通過(guò)該環(huán)境變量來(lái)控制依賴包的管理方式。當(dāng)GO111MODULE的值為on時(shí),那么就會(huì)使用modules功能,這種模式下,$GOPATH不再作為build時(shí)導(dǎo)入的角色,依賴包會(huì)存放在$GOPATH/pkg/mod目錄下。工程中的依賴包也會(huì)從此目錄下查找。

有關(guān)該功能的介紹,可以看Go1.1.1新功能module的介紹及使用。

查找順序

GO111MODULE=off時(shí),如果一個(gè)包在vendor和$GOPATH下都存在,那么使用順序?yàn)椋?/p>

優(yōu)先使用vendor目錄下面的包,

如果vendor下面沒(méi)有搜索到,再搜索$GOPATH/src下面的包,

如果$GOPATH下面沒(méi)有搜索到,那么搜索$GOROOT/src下面的包,

要么完整使用vendor下面的包,要么完整使用$GOPATH下面的包,不會(huì)混合使用。

補(bǔ)充:Go 語(yǔ)言編程 — go mod 依賴包管理

使用 go mod

go mod 的子指令

go mod 依賴包管理

Golang 將 Modules(模塊)定義為 “源代碼交付和版本控制的單元”。

go mod 是 Golang 1.11 版本引入的依賴包管理工具,替換舊的基于 GOPATH 的依賴包管理方式。GOPATH 不再需要包含 src 子目錄,使用 go.mod 方式管理的依賴包都被下載到了 $GOPATH/pkg/mod 目錄。

有了 go mod 之后,每個(gè)項(xiàng)目(源代碼目錄)就是一個(gè) Module,只要其中包含了 go.mod 文件。go mod 指令和 go.mod 文件用于記錄和解析模塊之間的依賴性。

go.mod 文件一旦創(chuàng)建后,它的內(nèi)容將會(huì)被 go toolchain(工具鏈)完全掌控,比如:執(zhí)行 go get、go build、go mod 等指令時(shí),會(huì)自動(dòng)修改和維護(hù) go.mod 文件。

除了 go.mod 之外,go 指令還維護(hù)了一個(gè) go.sum 文件,其中包含特定模塊版本內(nèi)容的加密哈希。go 指令使用 go.sum 文件來(lái)確保這些模塊的哈希值,以確保項(xiàng)目所依賴的模塊不會(huì)出現(xiàn)意外更改。

go.mod 和 go.sum 都應(yīng)該應(yīng)用于版本控制。 并且 go.sum 不需要手工維護(hù),所以可以不用太關(guān)注。

使用 go mod

使用 Go Modules 需要配置 GO111MODULE 環(huán)境變量,GO111MODULE 有三個(gè)值:off、on 和 auto(默認(rèn)值):

GO111MODULE=off:關(guān)閉 Go Modules,沿用舊版本的 GOPATH 方式,項(xiàng)目的依賴包依舊在 vendor 目錄或者 $GOPATH/src 目錄下進(jìn)行查找。

GO111MODULE=on:開(kāi)啟 Go Modules,項(xiàng)目的依賴包記錄在 go.mod 文件中。

GO111MODULE=auto:go 指令根據(jù)當(dāng)前目錄來(lái)決定是否啟用 Modules 功能。

當(dāng)項(xiàng)目處于 GOPATH/src 內(nèi),則會(huì)使用 GOPATH/src 的依賴包。

當(dāng)項(xiàng)目處于 GOPATH/src 外,則使用 go.mod 里 require 聲明的依賴包。

使用 go.mod 的流程:

在 $GOPATH/src 目錄之外創(chuàng)建 Golang 項(xiàng)目。

初始化項(xiàng)目的 go.mod 文件。

$ go mod init projectNmae>

注意,項(xiàng)目下屬的子目錄是不需要再次 init 的,整個(gè)項(xiàng)目的依賴都會(huì)組織在根目錄的 go.mod 文件里。

導(dǎo)入外部包:

package main

import (
 "fmt"
 "github.com/gohouse/gorose"
)

func main() {
 fmt.Println("hello world!")
}

運(yùn)行程序時(shí),會(huì)自動(dòng)下載依賴包并更新 go.mod 文件:

$ go run hello.go
go: finding module for package github.com/gohouse/gorose
go: downloading github.com/gohouse/gorose v1.0.5
go: found github.com/gohouse/gorose in github.com/gohouse/gorose v1.0.5
go: finding module for package github.com/gohouse/converter
go: downloading github.com/BurntSushi/toml v0.3.0
go: downloading github.com/gohouse/converter v0.0.3
go: found github.com/gohouse/converter in github.com/gohouse/converter v0.0.3
go: downloading github.com/go-sql-driver/mysql v1.4.0
# command-line-arguments
./hello.go:5:5: imported and not used: "github.com/gohouse/gorose"

檢查 go.mod 文件中自動(dòng)更新的依賴清單:

module hello

go 1.14

require (
 github.com/gohouse/converter v0.0.3 // indirect
 github.com/gohouse/gorose v1.0.5 // indirect
)

其中 require 是一個(gè)關(guān)鍵字,此外還有 module、replace 和 exclude:

module 語(yǔ)句:指定模塊的名字(路徑)。

require 語(yǔ)句:指定的依賴模塊。

replace 語(yǔ)句:可以替換依賴項(xiàng)模塊。

exclude 語(yǔ)句:可以忽略依賴項(xiàng)模塊。

另外,上述的 v0.0.3 就是依賴包 converter 的版本。如果沒(méi)有在 go.mod 指定版本,go 指令就會(huì)自動(dòng)下載代碼中的依賴的最新版本。否則,go 指令會(huì)根據(jù) require 語(yǔ)句的路徑和版本進(jìn)行下載。指定版本時(shí)也可以用 latest,表示下載最新的版本。

replace 語(yǔ)句常用于依賴包實(shí)際路徑變更的場(chǎng)景中,例如:

replace golang.org/x/text => github.com/golang/text latest

如此的,在這種情況下依賴包的維護(hù)會(huì)變得更簡(jiǎn)單。

還需要注意 go.mod 中的 module hello 這一條語(yǔ)句,因?yàn)楫?dāng)前項(xiàng)目已經(jīng)不在 $GOPATH/src 內(nèi)了,所以 module hello 標(biāo)注了項(xiàng)目 “根” 的路徑,以此來(lái)作為項(xiàng)目中其他包的根路徑。

go mod 的子指令

初始化一個(gè) Module:

go mod init project_name>

下載項(xiàng)目依賴的 modules 到本地 Cache:

# 在項(xiàng)目目錄下執(zhí)行

go mod download

注:目前所有模塊版本數(shù)據(jù)均緩存在 $GOPATH/pkg/mod 和 $GOPATH/pkg/sum 下。

編輯 go.mod 文件,選項(xiàng)有 -json、-require 和 -exclude:

go mod edit
# e.g.
go mod edit -replace=golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest

以文本模式打印模塊需求圖:

go mod graph

刪除錯(cuò)誤或者不使用的 Modules:

go mod tidy

生成 Vendor 目錄:

go mod vendor

驗(yàn)證依賴是否正確:

go mod verify

查找依賴:

go mod why

清理 Modules 緩存:

go clean -modcache

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • go自動(dòng)下載所有的依賴包go module使用詳解
  • golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解
  • go mod 安裝依賴 unkown revision問(wèn)題的解決方案

標(biāo)簽:黔西 松原 武漢 鷹潭 保定 泰安 宜春 河池

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序》,本文關(guān)鍵詞  外部,依賴,包,從,vendor,GOPATH,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    曰本色欧美视频在线| 国产日韩欧美视频在线观看| 色乱码一区二区三在线看| 日韩欧美视频专区| 国内成人免费视频| 国产精品一级二级三级| 国产一区二区三区视频在线| 六月丁香婷婷色狠狠久久| 91色porny在线视频| 亚洲欧美另类在线观看| 永久免费看mv网站入口亚洲| 国产精品久久久高清免费| 红桃视频成人在线观看| 国产精品300页| 日韩一区二区三区国产| 欧美伊人亚洲伊人色综合动图| 亚洲日韩中文字幕| 精品人妻一区二区三区潮喷在线| 欧美日韩网址| 香蕉视频免费在线播放| 多人啪嗒啪嗒在线观看免费| 亚洲欧美日韩中文播放| 在线观看免费黄网站| 自拍偷拍亚洲一区| 日韩精品1区2区3区| 奇米影视亚洲色图| 五月天男人天堂| 黄色激情网站| 精品国产乱码久久久久久果冻传媒| 懂色av色香蕉一区二区蜜桃| 国产99视频在线| 2020国产精品极品色在线观看| 精品日韩视频在线观看| 中文字幕中文字幕99| 91麻豆精品国产91久久久资源速度| 成人福利av| 一区二区三区精品在线| 高清中文字幕一区二区三区| 国产女王在线**视频| 国产精品私人自拍| 色棕色天天综合网| 日韩不卡免费高清视频| 亚洲涩涩在线观看| 久久精品国产99国产精品澳门| 日本午夜精品| 永久免费看mv网站入口亚洲| 国产在线观看免费麻豆| 亚洲一区二区三区四区五区| 天堂91在线| 成人爱爱网址| 免费在线观看一区二区| 久久亚洲欧美| 亚洲av成人精品毛片| 久久免费电影网| 午夜亚洲福利老司机| 中文xxx视频| 久久精子c满五个校花| 日韩av网站免费在线| 欧美日韩福利在线| 国产伊人久久| 国产不卡一区二区在线观看| 菠萝菠萝蜜在线视频免费观看| 亚洲成人精品一区二区三区| 青青青国产精品| 免费三级网站| 中文字幕第12页| xfplay资源站夜色先锋5566| 国产视频观看一区| 黄色国产精品一区二区三区| 一本色道久久综合亚洲精品小说| 久久久久99精品成人片试看| t66y永久入口地址| 日本三级视频网站| 91在线观看免费高清完整版在线观看| 青娱乐国产盛宴| 国内精品久久久久国产盗摄免费观看完整版| av在线播放网| 成年人黄色大片在线| 暖暖视频日本免费| 国产大学生粉嫩无套流白浆| 亚洲一区在线观看视频| 一本久久a久久精品亚洲| 99re久久最新地址获取| 日本aⅴ大伊香蕉精品视频| 亚洲另类xxxx| 先锋影音日韩| 自拍欧美一区| 中文精品视频一区二区在线观看| 久久国产天堂福利天堂| 成视人a免费观看视频| 中文字幕亚洲综合久久| 蜜臀av一区二区| 亚洲黄色片视频| 精品久久久国产精品999| 午夜免费福利视频在线观看| 91麻豆精品国产91久久久使用方法| 色777狠狠狠综合伊人| 免费在线观看a| 北条麻妃在线一区二区| 翁止熄痒禁伦短文合集免费视频| 91麻豆国产精品久久| 美女无遮挡网站| 欧美不卡一二三| 欧美图片自拍偷拍| 麻豆国产在线视频| 国产中文欧美精品| 丁香花高清在线观看完整版| 国产精品免费视频观看| 欧美一区二区三区在线| 久久riav| 久久久久久婷| 亚洲网站在线播放| 中文字幕日本一区| 日本亚洲精品在线观看| 日韩国产在线不卡视频| 亚洲欧美视频在线观看| 爱爱免费小视频| 国产成人精选| 激情小视频网站| 好看的日韩精品| 国产av无码专区亚洲av毛网站| 精品少妇一区二区三区免费观看| 成人中文在线| 日韩视频一区二区在线观看| japanesexxxx在线播放| 欧美video巨大粗暴18| 久久免费午夜影院| 国产免费内射又粗又爽密桃视频| 男人av在线播放| 色综合小说天天综合网| 亚洲综合爱爱久久网| 久久亚洲综合网| 国产传媒欧美日韩成人| 福利网站av| 国产不卡一区二区在线观看| 午夜免费福利影院| 中文字幕一区二区三区四| 久久久久久人妻一区二区三区| 亚洲第一大网站| 国产欧美在线一区| 欧美一区二区三区免费视| 在线免费观看一区| 亚洲男同1069视频| 亚洲1区在线观看| 91精品啪aⅴ在线观看国产| 99久久激情视频| 国产精品国产馆在线真实露脸| 欧美片一区二区| 国产日韩中文字幕| 日韩在线视频精品| 欧美日韩国产不卡在线看| 亚洲激情第一页| 91ph在线| 国产精品五区| 色国产精品一区在线观看| 亚洲成人激情在线观看| 91日韩一区二区三区| 中文久久电影小说| 一本色道久久hezyo无码| 少妇饥渴放荡91麻豆| 男女啪啪a级毛片| 亚洲国产精品国自产拍久久| 国产www在线| 性生活在线视频| 男女无套免费网站| 黄色网战入口| 欧美午夜精品久久久久久蜜| 未满十八勿进黄网站一区不卡| 高h震动喷水双性1v1| 黄色福利在线观看| 亚洲成人av免费观看| 无码一区二区精品| 在线免费黄色小视频| 中文字幕精品在线视频| 一区在线影院| 97精品国产97久久久久久| 亚洲一区二区在线视频观看| 欧美老肥婆性猛交视频| 亚洲天堂一区二区在线观看| 先锋影音av中文字幕| 国产精品久久福利| 国产精品无码在线| 青青草原av| 日本成人三级电影| 日韩三级影院| 国产97人人超碰caoprom| 天天干天天插天天射| 毛片免费不卡| 欧美xxxxb| 天天舔天天干天天操| 四虎成人免费视频| 在线视频91p| 亚洲国产精品资源| 一区二区 亚洲| 影音先锋在线影院| 亚洲国产高清视频| 91在线无精精品白丝| 国产乱码精品一区二区三区av| 97自拍视频| 国产精品久久久久久人| 少女频道在线观看免费播放电视剧| 日韩在线视频二区| 999国产精品| 日韩高清a**址| 国产专区视频| 欧美日韩精品一区二区三区在线观看| 国产激情视频一区二区三区| 日韩少妇中文字幕| 国产欧美日本一区二区三区| 欧美日韩精品一区| 国产成人综合网| 亚洲一区二区三区蜜桃| 一区二区在线免费| 香蕉视频999| 日韩精品永久网址| a黄色在线观看| 国产欧美日韩在线视频| 精品在线一区| 亚洲天天做日日做天天谢日日欢| 欧美性猛交xxxx黑人猛交| 国产精品国产三级国产在线观看| 国产香蕉97碰碰久久人人| 中文字幕在线永久| 亚洲黄色三级| 成人免费在线一区二区三区| 国产精品成人69xxx免费视频| 性久久久久久久久| 无码av天堂一区二区三区| 高清av一区二区三区| 第四色成人网| 免费看成年视频网页| 精品人妻少妇一区二区| 麻豆映画在线观看| 亚洲福利一区二区| 国产美女视频黄a视频免费| 在线观看网站免费入口在线观看国内| 羞羞小视频在线观看| 欧美aa一级| 国产国产精品| 天天天干夜夜夜操| 国产馆精品极品| 九九九九九九精品任你躁| 四虎国产精品成人免费影视| 久久不射影院| 麻豆精品在线观看| 深夜福利一区二区三区| 青青草视频在线青草免费观看| 性xxxx奶大欧美高清| 九九热r在线视频精品| 色婷婷久久久| 5566中文字幕一区二区| 日韩在线视频导航| 成人午夜视频在线观看免费| 在线播放91灌醉迷j高跟美女| 中文字幕av在线| 天天综合网天天| 中日韩免费视频中文字幕| 九九热国产视频| 99国产麻豆精品| 日产精品久久久久久久性色| 久久久精品国产sm调教| 丰满少妇大力进入| 久久99精品视频| 欧美日韩亚洲综合在线| 91精品国产全国免费观看| 亚洲小说春色综合另类网蜜桃| 91sa在线看| 欧美精品一区二区三区四区五区| 最新中文字幕久久| 国产一级片视频| 在线视频亚洲自拍| 一二三av在线| 国产精品一二三产区| 亚洲图色在线| 精品91一区二区三区| 国产福利av网站| 国产精品自拍三区| 欧美日韩免费看片| 亚洲午夜久久久| 国产精品白浆一区二小说| 永久久久免费浮力影院| 色伦专区97中文字幕| 精品国产精品三级精品av网址| 91在线小视频| 精品国产91久久久久久浪潮蜜月| 欧美tickling网站挠脚心| 91精品大全| 国产精品露脸av在线| 国产91在线观看丝袜| 手机看片福利视频| 亚洲精品中文字幕成人片| 动漫一区二区三区| 国产日韩三级在线| 中文字幕在线看片| 亚洲国产精品视频在线观看| 爱搞国产精品| 亚洲巨乳在线观看| 日韩av在线天堂| 国产亚洲人成网站在线观看| 中文字幕在线观看日本| 美女把尿口扒开给男人桶视频| 亚洲不卡一区二区三区| 国产av一区二区三区| 久草福利资源站| 亚洲区免费影片| 老司机午夜在线视频| 色喇叭免费久久综合| 奶水喷射视频一区| av免费在线观看不卡| 日韩一区二区三区在线免费观看| 国产视频一区不卡| 午夜视频一区二区三区| 国产精品永久| 国产精品中文字幕制服诱惑| 国产精品久久久久久久久搜平片| 亚洲精品网址在线观看| 久久久久久亚洲中文字幕无码| 亚洲人metart人体| 国产九色在线播放九色| 韩国一区二区在线观看| 亚洲爱爱视频| 99国产精品99| 公共露出暴露狂另类av| 久久国产欧美精品| 91久久久亚洲精品| 国产精品久久久一区二区三区| 国内成+人亚洲+欧美+综合在线| 51国偷自产一区二区三区的来源|