[英]How to organise a Go project with vendorised dependencies?
我正在研究一個不是軟件包而是服務的Go項目。 它取決於mgo
等等。 由於此服務法律應該是安全的版本,高可用性,我們已經作出vendorize的決定mgo
項目內的依賴。 由於法律上的要求,我們不能僅僅依賴於拉取依賴origin/master
版本上的任何版本。
顯然,這破壞了所有標准命令的GOPATH
,因為它不再位於GOPATH
下,而是位於Git存儲庫中的vendor
目錄中:
~/src/link_tracker/
main.go
main_test.go
vendor/
src/
labix.org/
etc...
目前,我們正在使用一個相當丑陋的Bash腳本來解決此問題,該腳本處理了許多環境變量並進行了一些符號鏈接,但是如果我們可以將所有這些都合並在Makefile或類似文件中,那就太好了。
在不失去我們對mgo
特定版本依賴的情況下,組織此活動的最佳/正確方法是什么?
您現在應該使用https://github.com/kr/godep解決此問題非常穩定,需要說明的是您的代碼應位於存儲庫中(git,svn,mercurial等)。
我一直在使用的兩個工具(用於類似的目標)是:
您可能應該看看是否可以使用其中之一而不是自己滾動。 在labix.org的特定情況下,johnny-deps似乎要求將其托管在git托管下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.