來自python/django世界,擁有類似require.txt的東西等同於go/revel會很棒。我怎樣才能做到這一點?我知道我可以只寫一個requirements.txt文件,然後做類似Golang requirements.txt等價物
cat reqiurements.txt | xargs go get
但是如果我的要求也有要求呢?上面的命令會嘗試「去獲取」它們,然後它們會失敗,因爲我沒有安裝這些需求。
有什麼我失蹤了嗎?
來自python/django世界,擁有類似require.txt的東西等同於go/revel會很棒。我怎樣才能做到這一點?我知道我可以只寫一個requirements.txt文件,然後做類似Golang requirements.txt等價物
cat reqiurements.txt | xargs go get
但是如果我的要求也有要求呢?上面的命令會嘗試「去獲取」它們,然後它們會失敗,因爲我沒有安裝這些需求。
有什麼我失蹤了嗎?
命令go get
完全符合您的需求:它會查找所有依賴項並下載並安裝缺失項。專注於「全部」:go get
確實遍歷您的依賴關係圖。
看一看文檔:
http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies
轉到文檔非常乾淨,短,寫得很好。在建立基於其他工具或工具鏈經驗的假設之前,我會建議總是先查看文檔。
儘管你已經分享的鏈接並沒有解釋我如何編寫自己的依賴關係。開發人員和用戶也可能有不同的依賴關係。 – erikbwork
@erikbwork你能解釋一下「我自己的依賴」嗎?你是指用戶和開發者的「不同的依賴關係」是什麼意思?你是否在考慮只有測試代碼需要的依賴關係?如果是這樣:Go get句柄(參見命令行標誌)如果你談論需要的其他工具(例如'go generate'依賴於yacc或m4),那麼get get不適合你。從源代碼獲取下載並構建Go包,但它不是包管理器或系統配置工具。 – Volker
我不知道'go',所以我不能用這些術語來解釋它。但通常現代軟件需要一些額外的軟件包,例如你的程序可能會解析yaml文件。那麼你需要3.1.5版本的go-yaml庫。如果你從來沒有把它寫下來,我懷疑「去拿」會解決問題。 開發者和用戶之間的差異主要是穩定性。 Devs可以使用3.4.5版本而不是3.1.5版本,因爲它包含所有新功能,但可能會中斷。儘管用戶獲得最新版本的3.1.5版本,但因爲它不太經常打破。 – erikbwork
'去GET'應該抓住所有的需要爲每個包的要求。你不需要指定它們。嘗試一下,看看它是否符合你的要求。 – Intermernet