最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言包管理工具Godep的用法

 更新時間:2022年07月26日 08:32:55   作者:奮斗的大橙子  
這篇文章介紹了Go語言包管理工具Godep的用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、為什么要包管理

默認Go的第三方包都是放在Gopath的src目錄下,而且這些包都沒有版本號的概念,這樣的可能會出現一些問題。

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

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

go里面進行包依賴管理的工具有幾個。godep就是其中之一。

二、安裝godep

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

2.驗證是否安裝成功:在shell里面鍵入 godep ,應該會出現幫助信息。

Usage:
 
        godep command [arguments]
 
The commands are:
 
    save     list and copy dependencies into Godeps             //save命令主要是用于保存當前的依賴
    go       run the go tool with saved dependencies            //主要是用于執(zhí)行Go程序,相當于在原來的go命令上套了一層,因為涉及到了包管理
    get      download and install packages with specified dependencies  //get命令主要是用于獲取當前指定的依賴包
    path     print GOPATH for dependency code
    restore  check out listed dependency versions in GOPATH         //把依賴的包都下載到Gopath當中
    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

如下項目使用了第三方的包,那么我們就可以使用godep進行包管理

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

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

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這一個字段里面保存著當前依賴包的路徑、git提交的版本號信息。下次在拉下代碼之后,執(zhí)行Go build 就會執(zhí)行Vendor里面的代碼,這樣就再也不用擔心代碼不一致的問題。

備注:當引用的第三方包要升級了怎么辦,那么就修改Godep.json里面的提交的版本號就行了。

Godep是怎么實現版本管理的,可以參考下面這個圖。

總結如何使用godep

  • 1.保證程序能夠正常編譯
  • 2.執(zhí)行godep save 命令,執(zhí)行之后會將所有的依賴的第三方包掃描出來,生成Godeps和Vendor目錄
  • 3.提交上面兩個文件夾到自己的代碼庫,提交之后我們代碼中的第三方依賴就固定下來了。
  • 4.如果需要更新依賴的版本,那么直接更新godep.json里面的第三方包的版本號,然后再執(zhí)行一次godep save,最后提交到我們的代碼庫就行了。

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

然后更新一下Godeps.json里面的版本號

到此這篇關于Go使用Godep進行包管理的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 深入解析Go語言中HTTP請求處理的底層實現

    深入解析Go語言中HTTP請求處理的底層實現

    本文將詳細介紹?Go?語言中?HTTP?請求處理的底層機制,包括工作流程、創(chuàng)建?Listen?Socket?監(jiān)聽端口、接收客戶端請求并建立連接以及處理客戶端請求并返回響應等,需要的朋友可以參考下
    2023-05-05
  • Go模板template用法詳解

    Go模板template用法詳解

    這篇文章主要介紹了Go標準庫template模板用法詳解;包括GO模板注釋,作用域,語法,函數等知識,需要的朋友可以參考下
    2022-04-04
  • Go語言操作redis數據庫的方法

    Go語言操作redis數據庫的方法

    這篇文章主要介紹了Go語言操作redis數據庫的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 教你利用Golang可選參數實現可選模式

    教你利用Golang可選參數實現可選模式

    本文討論Golang函數可選參數及函數類型,以及如何利用可選函數類型實現可選模式。同時通過構造函數作為示例,實現強大帶可選參數的構造函數,讓代碼更直觀、靈活、支持擴展
    2023-01-01
  • 10個可以優(yōu)化代碼的Go語言技巧分享

    10個可以優(yōu)化代碼的Go語言技巧分享

    這篇文章主要為大家詳細介紹了10個可以優(yōu)化代碼的Go語言技巧,從而讓我們的代碼更加優(yōu)雅,文中的示例代碼講解詳細,需要的小伙伴可以參考下
    2024-01-01
  • Go語言json編碼駝峰轉下劃線、下劃線轉駝峰的實現

    Go語言json編碼駝峰轉下劃線、下劃線轉駝峰的實現

    這篇文章主要介紹了Go語言json編碼駝峰轉下劃線、下劃線轉駝峰的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Go語言實現定時器的方法

    Go語言實現定時器的方法

    這篇文章主要介紹了Go語言實現定時器的方法,涉及Go語言時間操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Golang干貨分享之利用AST實現AOP功能

    Golang干貨分享之利用AST實現AOP功能

    本文主要是一個純干貨分享,主要介紹了Golang如何利用AST實現AOP功能,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-04-04
  • RabbitMq如何做到消息的可靠性投遞

    RabbitMq如何做到消息的可靠性投遞

    現在的一些互聯網項目或者是高并發(fā)的項目中很少有沒有引入消息隊列的。 引入消息隊列可以給這個項目帶來很多的好處,這篇文章主要為大家介紹了RabbitMq如何做到消息的可靠性投遞,有需要的朋友可以借鑒參考下
    2022-12-12
  • Golang 實現獲取當前函數名稱和文件行號等操作

    Golang 實現獲取當前函數名稱和文件行號等操作

    這篇文章主要介紹了Golang 實現獲取當前函數名稱和文件行號等操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05

最新評論

长子县| 安溪县| 阆中市| 曲沃县| 东乡族自治县| 邵阳县| 建始县| 手游| 林州市| 独山县| 齐齐哈尔市| 锡林郭勒盟| 沾益县| 和田县| 开原市| 江都市| 海城市| 出国| 行唐县| 泽库县| 沁源县| 河间市| 苏尼特右旗| 三明市| 五河县| 都昌县| 天台县| 大城县| 金川县| 永宁县| 库尔勒市| 和平区| 广州市| 和顺县| 松溪县| 绥德县| 漳州市| 股票| 泰和县| 通江县| 阿克苏市|