Go語言的包管理

來源:互聯網
上載者:User

接觸go語言之前寫了一些nodejs的App,所以對於npm的包管理方式還是覺得挺方便的,但轉移到go語言平台後,由於官方並未推出自己的包管理工具,所以只能藉助於第三方的一些工具完成,本篇主要介紹一些目前使用的go的包依賴管理工具,用來協助程式的開發. gpm

gpm工具使用來完成go依賴庫下載的工具,非常的簡單,只需要建立自己的一個Godeps檔案,並把依賴的包寫到檔案中,這樣我們就可以直接通過命令列來執行下載任務,並把依賴下載到當前的GOPATH路徑中.
一個典型的Godeps檔案中,我們可以不標記任何庫依賴的版本資訊,這樣預設下載最新的依賴庫,也可以通過標記下載指定的版本,只需要在依賴庫的後面寫上版本或者git的tag即可,如下所示:

$ cat Godeps  # This is a comment  github.com/nu7hatch/gotrail         v0.0.2  github.com/replicon/fast-archiver   v1.02   #This is another comment!  github.com/nu7hatch/gotrail         2eb79d1f03ab24bacbc32b15b75769880629a865

具體的安裝gpm的方式,可以參考gpm官方的簡易教程,mac下可以通過brew直接下載,下面的是linux作業系統下面的安裝方式.

$ git clone https://github.com/pote/gpm.git && cd gpm$ git checkout v1.4.0 # You can ignore this part if you want to install HEAD.$ ./configure$ make install

下面介紹一個使用gpm的簡單一實例,我們寫了一個簡單的go程式,並且包含了一個原始碼main.go裡面依賴了一個外部的go庫,操作流程如下:

  export GOPATH=/home/mike/go-project  cd /home/mike/go-project  mkdir src bin pkg

main.go原始碼

  package main  import (    "github.com/aokoli/goutils"  )  func main(){    r,_:=goutils.RandomAscii(10)    println(r)  }

在src下面建立一個Godeps檔案,該檔案包含依賴的外部庫的版本,常值內容如下:

github.com/nu7hatch/gotrail

添加進去後直接儲存退出,該檔案我們可以推送到git庫裡面,當我們git下載該git源碼的時候,在src路徑下執行gpm get即可將所有的依賴下載下來. gvp

如果我們使用GOPATH指向我們的項目目錄的話,預設情況下go get或者上面的gpm get 都會在src目錄中下載所有的依賴,使得我們自己寫的代碼和依賴代碼在一起,如何分離依賴和原始碼,我們可以藉助於gvp工具,這個工具會在本地建立一個新的目錄,並協助我們新增這個目錄到GOPATH路徑下.這樣我們的程式就可以做到源碼和依賴分離.

gvp工具的安裝,這個工具的安裝方式同gpm基本相同:

$ git clone https://github.com/pote/gvp.git && cd gvp$ git checkout v0.2.1 # You can ignore this part if you want to install HEAD.$ ./configure$ make install

完成以後我們可以到項目的根目錄下執行如下的命令

$ source gvp

我們會看到項目下面多了一個.godeps檔案,這裡我們再去查看自己的GOPATH變數就變為了

$ echo $GOPATH/home/mike/go-project/.godeps:/home/mike/go-project

接下來如果我們通過利用gpm下載新的依賴包,這時候所有的依賴代碼就會進入godeps下面的src檔案,我們仍舊可以在項目本身的src下面編寫原始碼,最終這兩個工具可以很方便的協助我們管理組件依賴.對了我們可以直接通過gvp out退出當前的項目

本文放置到個人的blog中,歡迎大家訪問

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.