2013-08-28 118 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