Shell Golang requirements.txt等效文件

Shell Golang requirements.txt等效文件,shell,go,revel,Shell,Go,Revel,来自python/django世界,最好能为go/revel提供类似requirements.txt的等价物。我该怎么做?我知道我可以写一个requirements.txt文件,然后做类似的事情 cat requirements | xargs go get 但是如果我的需求也有需求呢?上面的命令将尝试“去获取”它们,然后它们将无法构建,因为我没有安装这些需求 有什么我遗漏的吗?命令go get完全满足您的需要:它查找所有依赖项和下载,并安装遗漏的依赖项。专注于“all”:go-get真正遍历

来自python/django世界,最好能为go/revel提供类似requirements.txt的等价物。我该怎么做?我知道我可以写一个requirements.txt文件,然后做类似的事情

cat requirements | xargs go get
但是如果我的需求也有需求呢?上面的命令将尝试“去获取”它们,然后它们将无法构建,因为我没有安装这些需求


有什么我遗漏的吗?

命令
go get
完全满足您的需要:它查找所有依赖项和下载,并安装遗漏的依赖项。专注于“all”:
go-get
真正遍历依赖关系图

请查看文档:

Go文档非常干净、简短且编写良好。我建议在做出基于其他工具或工具链经验的假设之前,首先查看文档


他们还提供有用的博客帖子,

我刚刚发现kubernetes的家伙实际上为自己创建了一个概览页面


总结是这样的:目前是稳定的,酷的新玩具被称为

go-get
应该抓住每个包装所需的所有要求。您不需要指定它们。与Python或大多数其他编程语言不同,Go在每个源文件中都有import语句,用于指定导入代码的来源。这就是为什么不需要单独的包描述符文件。(这只在您需要指定版本约束时才起作用,请参见从Go 1.11和1.12开始,哪一个是用于此约束的工具。)但是,您共享的链接没有解释我如何编写自己的依赖项。此外,开发人员和用户可能有不同的依赖项集。@erikbwork您能解释一下什么是“我自己的依赖项”吗?您所说的用户和开发人员的“不同依赖集”是什么意思?您是否只考虑测试代码所需的依赖关系?如果是这样:Go-get处理此问题(请参阅命令行标志),如果您谈论所需的其他工具(例如,
Go-generates
依赖于yacc或m4),则Go-get不适合您。Go get downloads and build Go packages from source,它不是一个软件包管理器或系统配置工具。我不知道
Go
,所以我无法用这些术语向您解释它。但现代软件通常需要一些附加包,例如,您的程序可能解析yaml文件。然后,您需要版本3.1.5中的GoYAML库。如果你从未在某个地方写下它,我怀疑
去拿
会发现它。开发者和用户之间的区别主要在于稳定性。开发人员可能会使用3.4.5版而不是3.1.5版,因为它包含了所有的新特性,但它可能会崩溃。不过,用户在最新版本中获得了3.1.5版本,因为它很少出现故障。@erikbwork您谈论的是包管理,有很多工具,有些几乎是官方的。这样的讨论与“go get”无关。是的,但与您试图在此处回答的问题无关。这在2019年已经过时