Quantcast
Channel: Blog E
Viewing all articles
Browse latest Browse all 541

[Golang] 關於Go的Vendoring

$
0
0

起因

本來對於Golang的vendoring都是統一使用godep(如果比較大的專案),比較小的專案都直接使用go get來抓取dependency package.

但是由於Google Code在2016/01/25關閉了,所以常用的uuid沒得抓了.所以來試試看Go 1.5 開始的vendor experiment,順便做點記錄.

什麼是vendor experiment?

一般而言我們在使用Golang套件的時候都是很簡單的直接使用

import"github.com/kkdai/coapmq"

這樣只要編譯專案前先跑 go get -d就會把所有的相依專案都抓取最新的程式碼到你的GOPATH. 現在問題來了:

  • 引用的專案已經被砍掉了?
  • 引用的專案原作者或是維護團隊忽然決定大改API?
  • 引用的專案忽然出現意外的錯誤(break code)? (當然有可能是底層API被Google改掉)
  • 想要維護整個專案的穩定度

根據以上的需求或是要避免以上的一些問題.將你的專案Vendoring是必要的.而Vendoring的做法一般就是放一份你目前使用的相依套件的程式碼到 vendor目錄底下. 有可能是這樣

- vendor
  - github.com
	  - kkdai
		  - coapmq
		  - photomgr 

開始將你的專案轉換成可以使用vendor experiment

假設你現在有一個專案裡面用到了數個相依的套件(ex: mysqluuid (注意此鏈結已經失效) … )

建議流程如下:

確認你的專案是在GOPATH底下

不論是GO15VENDOREXPERIMENT還是govendor都是使用在GOPATH才能作用.所以請注意:

  • 專案一定要放GOPATH底下
  • 專案一定要放GOPATH底下
  • 專案一定要放GOPATH底下

如果不在GOPATH底下,將不會work.我想這也是godep或是GB能夠繼續讓大家熱愛的原因.

設定GO15VENDOREXPERIMENT=1

一開始得把這個flag打開,你可以先使用go env來查詢該flag是不是有開啟的狀態(初始是關閉,但是Go 1.6將會打開)

  • Mac/Ubutu: export GO15VENDOREXPERIMENT=1
  • Windows: set GO15VENDOREXPERIMENT=1

將你相依的專案列出來

這裡使用的是govendor,透過他可以將所有相依的專案.流程如下:

  • govendor init來初始化,並且將所有的專案寫入vendor.json裡面.
  • 這時候你可以透過govendor list來列出所有的相依專案,然後決定哪個要放入vendor資料夾
  • 假設你要把github.com/kkdai/coapmq放入vendor目錄中,就執行以下 govendor add github.com/kkdai/coapmq

依序把你需要的專案放在目錄中,然後就可以了.

如何透過Vendoring Experiment編譯檔案

將你需要的專案抓到GOPATH底下(必須),然後切記GO15VENDOREXPERIMENT=1,其實就簡單地跑go get然後go build就可以了.

其他Vendoring的用法

其實還有其他方式,不論是Godep或是GB其實都各有愛護者,不過用的習慣與相關的使用場景是比較重要的.

相關鏈結


Viewing all articles
Browse latest Browse all 541

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.