2013-08-28 208 views
8

來自python/django世界,擁有類似require.txt的東西等同於go/revel會很棒。我怎樣才能做到這一點?我知道我可以只寫一個requirements.txt文件,然後做類似Golang requirements.txt等價物

cat reqiurements.txt | xargs go get 

但是如果我的要求也有要求呢?上面的命令會嘗試「去獲取」它們,然後它們會失敗,因爲我沒有安裝這些需求。

有什麼我失蹤了嗎?

+5

'去GET'應該抓住所有的需要爲每個包的要求。你不需要指定它們。嘗試一下,看看它是否符合你的要求。 – Intermernet

回答

13

命令go get完全符合您的需求:它會查找所有依賴項並下載並安裝缺失項。專注於「全部」:go get確實遍歷您的依賴關係圖。

看一看文檔:

http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies

轉到文檔非常乾淨,短,寫得很好。在建立基於其他工具或工具鏈經驗的假設之前,我會建議總是先查看文檔。

+0

儘管你已經分享的鏈接並沒有解釋我如何編寫自己的依賴關係。開發人員和用戶也可能有不同的依賴關係。 – erikbwork

+0

@erikbwork你能解釋一下「我自己的依賴」嗎?你是指用戶和開發者的「不同的依賴關係」是什麼意思?你是否在考慮只有測試代碼需要的依賴關係?如果是這樣:Go get句柄(參見命令行標誌)如果你談論需要的其他工具(例如'go generate'依賴於yacc或m4),那麼get get不適合你。從源代碼獲取下載並構建Go包,但它不是包管理器或系統配置工具。 – Volker

+0

我不知道'go',所以我不能用這些術語來解釋它。但通常現代軟件需要一些額外的軟件包,例如你的程序可能會解析yaml文件。那麼你需要3.1.5版本的go-yaml庫。如果你從來沒有把它寫下來,我懷疑「去拿」會解決問題。 開發者和用戶之間的差異主要是穩定性。 Devs可以使用3.4.5版本而不是3.1.5版本,因爲它包含所有新功能,但可能會中斷。儘管用戶獲得最新版本的3.1.5版本,但因爲它不太經常打破。 – erikbwork

2

我剛剛發現kubernetes傢伙實際上已經爲自己創建了一個概覽頁面here

總結是這樣的:目前穩定是Glide和很酷的新玩具被稱爲dep