簡體   English   中英

如何組織帶有供應商依賴性的Go項目?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM