<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          go:通過(guò)go get 和 go mod download 下載依賴(lài)包 您所在的位置:網(wǎng)站首頁(yè) 屬雞克太歲化解太歲佩戴什么最好 go:通過(guò)go get 和 go mod download 下載依賴(lài)包

          go:通過(guò)go get 和 go mod download 下載依賴(lài)包

          2024-01-13 20:30| 來(lái)源: 網(wǎng)絡(luò)整理| 查看: 265

          參考網(wǎng)址

          blog.csdn.net/qq_42533216…

          安裝完golang后,輸入go env可以看到 GOPATH="/home/zhongzhanhui/go" GOROOT="/usr/local/go" GOBIN="" 一、go get 1/參考 http://c.biancheng.net/view/123.html `go get`?命令可以借助代碼管理工具通過(guò)遠(yuǎn)程拉取或更新代碼包及其依賴(lài)包,并自動(dòng)完成編譯和安裝。 整個(gè)過(guò)程就像安裝一個(gè) App 一樣簡(jiǎn)單。 這個(gè)命令在內(nèi)部實(shí)際上分成了兩步作:第一步是下載源碼包,第二步是執(zhí)行 go install。 默認(rèn)情況下,go get 可以直接使用。例如,想獲取 go 的源碼并編譯,使用下面的命令行即可: ``` go get github.com/davyxu/cellnet ``` go get下載的依賴(lài)包會(huì)放到GOPATH 目錄下,因此獲取前需要確保 GOPATH 已經(jīng)設(shè)置。Go 1.8 版本之后,GOPATH 默認(rèn)在用戶(hù)目錄的 go 文件夾下。 2/總結(jié): - GO111MODULE="auto" | "off" 下載的包會(huì)安裝在`GOPATH/src`下,import導(dǎo)入非標(biāo)準(zhǔn)包的時(shí)候也會(huì)從這個(gè)目錄搜索。 - GO111MODULE="on" 下載的包會(huì)安裝在`GOPATH/pkg/mod/`下,import導(dǎo)入非標(biāo)準(zhǔn)包的時(shí)候是從這個(gè)目錄搜索,不會(huì)去`GOPATH/src`目錄下找包。 二、go module 0/參考 https://www.cnblogs.com/chnmig/p/11806609.html https://www.jianshu.com/p/bbed916d16ea https://www.cnblogs.com/klsw/p/11537850.html 這個(gè)很詳細(xì):goproxy和go modules的初步使用 go module是go官方自帶的go依賴(lài)管理庫(kù)。 go module可以將某個(gè)項(xiàng)目(文件夾)下的所有依賴(lài)整理成一個(gè) go.mod 文件,里面寫(xiě)入了依賴(lài)的版本等,使用go module之后我們可不需要關(guān)心GOPATH,也不用將代碼放置在src下了。 ``` GO111MODULE=off: 不使用 modules 功能。 GO111MODULE=on: 使用 modules 功能,不會(huì)去 GOPATH 下面查找依賴(lài)包。 GO111MODULE=auto: Golang 自己檢測(cè)是不是使用 modules 功能。 ``` 推薦使用 Go 模塊的時(shí)候, 把GO111MODULE 設(shè)置為 on而不是atuo,將以下語(yǔ)句添加進(jìn) ~/bashrc中,然后重開(kāi)Terminal ``` vim ~/.bashrc # 添加 export GO111MODULE=on ``` 1/初始化 項(xiàng)目第一次使用 GO MODULE(項(xiàng)目中還沒(méi)有g(shù)o.mod文件) ,cd進(jìn)入項(xiàng)目文件夾,初始化 MODULE ``` cd /home/zhongzhanhui/GoProject/Seckill go mod init Seckill #Seckill是項(xiàng)目名 ``` 此時(shí)項(xiàng)目根目錄會(huì)出現(xiàn)一個(gè) go.mod 文件, 此時(shí)的 go.mod 文件只標(biāo)識(shí)了項(xiàng)目名和go的版本, 這是正常的,因?yàn)橹皇浅跏蓟恕?go.mod 文件內(nèi)容如下: ``` module SecKill go 1.13 ``` 2/檢測(cè)依賴(lài) go mod tidy tidy會(huì)檢測(cè)該文件夾目錄下所有引入的依賴(lài), 寫(xiě)入 go.mod 文件,寫(xiě)入后會(huì)發(fā)現(xiàn) go.mod 文件有所變動(dòng): ```go module SecKill go 1.13 require ( github.com/gin-contrib/sessions v0.0.1 github.com/gin-gonic/gin v1.5.0 github.com/jinzhu/gorm v1.9.11 github.com/kr/pretty v0.1.0 // indirect gopkg.in/yaml.v2 v2.2.2 ) ``` 此時(shí)依賴(lài)還是沒(méi)有下載的。 3/下載依賴(lài) 我們需要將依賴(lài)下載至本地,但不使用?`go get`,而是使用以下命令 ``` go mod download ``` 然而如果你沒(méi)有設(shè)置 GOPROXY 為國(guó)內(nèi)鏡像,這步百分百會(huì)卡死。 設(shè)置鏡像的語(yǔ)句(最好把他們寫(xiě)進(jìn) ~/.bashrc 中,不然每次打開(kāi)Terminal都要執(zhí)行一次): ``` export GO111MODULE=on export GOPROXY=https://goproxy.io ``` 參考:https://blog.csdn.net/mrtwenty/article/details/98451005 此時(shí)會(huì)將依賴(lài)全部下載至 GOPATH 下的pkg/mod文件夾中, 比如此處會(huì)下載到/home/zhongzhanhui/go/pkg/mod中,同時(shí)會(huì)在項(xiàng)目根目錄下生成 go.sum 文件, 該文件是依賴(lài)的詳細(xì)依賴(lài)。但是我們開(kāi)頭說(shuō)了,我們的項(xiàng)目是沒(méi)有放到 GOPATH 下的,那么我們下載至 GOPATH 下是無(wú)用的,照樣找不到這些包 似乎項(xiàng)目是可以找到放在GOPATH 下的依賴(lài)包的。 4/導(dǎo)入依賴(lài) ``` go mod vendor ``` 執(zhí)行此命令,會(huì)將剛才下載至 GOPATH 下的依賴(lài)轉(zhuǎn)移至該項(xiàng)目根目錄下的 vendor(自動(dòng)新建) 文件夾下, 此時(shí)我們就可以使用這些依賴(lài)了。然而實(shí)際不導(dǎo)入也是完全ok的。導(dǎo)入了反而更麻煩。 在協(xié)作中使用 GOMODULE時(shí)要注意的是, 在[項(xiàng)目管理](https://so.csdn.net/so/search?q=%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86&spm=1001.2101.3001.7020)中,如使用git,請(qǐng)將 vendor 文件夾放入白名單,不然項(xiàng)目中帶上包體積會(huì)很大。 git設(shè)置白名單方式為在git托管的項(xiàng)目根目錄新建 .[gitignore](https://so.csdn.net/so/search?q=gitignore&spm=1001.2101.3001.7020) 文件 設(shè)置忽略即可。但是 go.mod 和 go.sum 不要忽略,另一人clone項(xiàng)目后在本地進(jìn)行依賴(lài)更新(同上方依賴(lài)更新)即可。 三、GOLAND設(shè)置開(kāi)啟 GO MODULE 這部分看goproxy和go modules的初步使用 更詳細(xì)。 可能是因?yàn)?GO MODULE 功能還需完善,GOLAND默認(rèn)是關(guān)閉該功能的,我們需要手動(dòng)打開(kāi)。proxy應(yīng)該填https://goproxy.io

          在GoLand的setting中設(shè)置好GOPATH,然后在代碼的import的依賴(lài)包處按 alt+enter ,同步依賴(lài)包即可,可以看到依賴(lài)包名會(huì)由紅色變綠色。 依賴(lài)更新 這里的更新不是指版本的更新,而是指引入新依賴(lài),不使用 go get ,我怎么在項(xiàng)目中加新包呢? 直接項(xiàng)目中 import 這個(gè)包,之后更新依賴(lài)即可依賴(lài)更新請(qǐng)從檢測(cè)依賴(lài)部分一直執(zhí)行即可,即 ``` go mod tidy go mod download go mod vendor ``` GOMODULE常用命令 go mod init # 初始化go.mod go mod tidy # 更新依賴(lài)文件 go mod download # 下載依賴(lài)文件 go mod vendor # 將依賴(lài)轉(zhuǎn)移至本地的vendor文件 go mod edit # 手動(dòng)修改依賴(lài)文件 go mod graph # 打印依賴(lài)圖 go mod verify # 校驗(yàn)依賴(lài)


          【本文地址】

          公司簡(jiǎn)介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專(zhuān)題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 象山县| 南昌市| 永昌县| 绍兴县| 德阳市| 苏尼特左旗| 航空| 定日县| 昌邑市| 青龙| 闽侯县| 蒙山县| 白河县| 塔城市| 泰和县| 钟山县| 阿坝县| 浦北县| 安仁县| 山阳县| 宜君县| 本溪| 潞西市| 景宁| 历史| 二连浩特市| 托克托县| 富民县| 荥阳市| 宝鸡市| 论坛| 辽阳市| 揭西县| 郸城县| 柯坪县| 光山县| 全州县| 甘洛县| 阜平县| 阜南县| 和林格尔县| http://444 http://444 http://444 http://444 http://444 http://444