溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Go語(yǔ)言包管理工具Godep怎么使用

發(fā)布時(shí)間:2022-07-27 10:07:07 來源:億速云 閱讀:185 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Go語(yǔ)言包管理工具Godep怎么使用”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Go語(yǔ)言包管理工具Godep怎么使用”文章能幫助大家解決問題。

一、為什么要包管理

默認(rèn)Go的第三方包都是放在Gopath的src目錄下,而且這些包都沒有版本號(hào)的概念,這樣的可能會(huì)出現(xiàn)一些問題。

舉個(gè)例子:當(dāng)A同事將開發(fā)完程序之后,此時(shí)可能引用了一個(gè)第三方的包,過了不久之后,B同事接手了該項(xiàng)目,此時(shí)如果B同事通過go get 命令獲取了包,而且包的版本進(jìn)行了升級(jí),恰巧這個(gè)包又不兼容以前的版本,這就會(huì)導(dǎo)致程序編譯錯(cuò)誤等問題?;蛘弋?dāng)這個(gè)維護(hù)的第三方包刪除了,那么B同學(xué)則不能下載到該包。

由上面的例子就能知道,為什么需要進(jìn)行包的依賴管理了。

go里面進(jìn)行包依賴管理的工具有幾個(gè)。godep就是其中之一。

二、安裝godep

1.安裝方法: go get github.com/tools/godep

2.驗(yàn)證是否安裝成功:在shell里面鍵入 godep ,應(yīng)該會(huì)出現(xiàn)幫助信息。

Go語(yǔ)言包管理工具Godep怎么使用

Usage:
 
        godep command [arguments]
 
The commands are:
 
    save     list and copy dependencies into Godeps             //save命令主要是用于保存當(dāng)前的依賴
    go       run the go tool with saved dependencies            //主要是用于執(zhí)行Go程序,相當(dāng)于在原來的go命令上套了一層,因?yàn)樯婕暗搅税芾?
    get      download and install packages with specified dependencies  //get命令主要是用于獲取當(dāng)前指定的依賴包
    path     print GOPATH for dependency code
    restore  check out listed dependency versions in GOPATH         //把依賴的包都下載到Gopath當(dāng)中
    update   update selected packages or the go version         //更新依賴的包
    diff     shows the diff between current and previously saved set of dependencies
    version  show version info

三、演示如何使用godep

如下項(xiàng)目使用了第三方的包,那么我們就可以使用godep進(jìn)行包管理

Go語(yǔ)言包管理工具Godep怎么使用

1. 在項(xiàng)目根目錄,執(zhí)行godep save 命令,如果執(zhí)行成功,則會(huì)生成兩個(gè)文件夾 Godeps 和 vendor

godep save 會(huì)把當(dāng)前包所依賴的所有第三方包掃描出來,然后將源代碼放在vendor目錄下。

Go語(yǔ)言包管理工具Godep怎么使用

GoDeps保存的是第三方包的依賴信息

Vendor保存所有依賴的第三方包

可以查看一下Godep.json

{
    "ImportPath": "godepDemo/protobuf",
    "GoVersion": "go1.10",
    "GodepVersion": "v80",
    "Deps": [
        {
            "ImportPath": "github.com/golang/protobuf/proto",
            "Comment": "v1.3.2-1-g4c88cc3f",
            "Rev": "4c88cc3f1a34ffade77b79abc53335d1e511f25b"
        }
    ]
}

Deps這一個(gè)字段里面保存著當(dāng)前依賴包的路徑、git提交的版本號(hào)信息。下次在拉下代碼之后,執(zhí)行Go build 就會(huì)執(zhí)行Vendor里面的代碼,這樣就再也不用擔(dān)心代碼不一致的問題。

備注:當(dāng)引用的第三方包要升級(jí)了怎么辦,那么就修改Godep.json里面的提交的版本號(hào)就行了。

Godep是怎么實(shí)現(xiàn)版本管理的,可以參考下面這個(gè)圖。

Go語(yǔ)言包管理工具Godep怎么使用

總結(jié)如何使用godep

  • 1.保證程序能夠正常編譯

  • 2.執(zhí)行g(shù)odep save 命令,執(zhí)行之后會(huì)將所有的依賴的第三方包掃描出來,生成Godeps和Vendor目錄

  • 3.提交上面兩個(gè)文件夾到自己的代碼庫(kù),提交之后我們代碼中的第三方依賴就固定下來了。

  • 4.如果需要更新依賴的版本,那么直接更新godep.json里面的第三方包的版本號(hào),然后再執(zhí)行一次godep save,最后提交到我們的代碼庫(kù)就行了。

例如:可以查看一下我依賴的protobuf的commitId

Go語(yǔ)言包管理工具Godep怎么使用

然后更新一下Godeps.json里面的版本號(hào)

Go語(yǔ)言包管理工具Godep怎么使用

關(guān)于“Go語(yǔ)言包管理工具Godep怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI