我的 Golang 项目依赖于几个包(即https://github.com/mattes/migrate和https://github.com/joho/godotenv)。我知道我可以go get或go install它们分开,但是有没有办法一次性安装项目的所有依赖项?理想情况下,我希望go install ./...将migrate和godotenv二进制文件放在 my 中$GOPATH/bin,但它只安装主包二进制文件,而不安装依赖项的二进制文件。
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
您是否正在寻求一种方法来从您的本地机器自动从go install ./...
您的代码中安装您想要调用的二进制文件?
直接使用 Go 不会发生这种情况,除非它们以相同的用户名或模式列出,您可以键入单个 go install 命令。但只是上面列出的两个不同,这不可能发生。
选项 1) 向您的用户说明调用go install
每个依赖项(这很常见)。
选项 2) 或者,创建一个 bash/batch 文件以install.sh
在您的存储库中使用简单的命令运行它们。其中,将需要go install
您的所有依赖项。另一种更像 UNIX/C 的方法是创建一个Makefile
,并告诉您的用户运行make
就我个人而言,我更喜欢选项 2,因为它可以让您对服务或实用程序进行非常复杂的控制。你可以从简单开始;但是,稍后再添加测试、go generate
命令以及您将来喜欢的任何其他内容 - 所有这些都无需更改您的安装说明just run 'make install' and it will handle it
。它还有助于 CI 服务器,您可以拥有一个make test
或任何您想要的东西;但是,与普通用户通常会运行它的不同。所有,在一个单一的Makefile
,您可以稍后更改。
我认为我的更新程序脚本有 25 个go get -u -v
命令。
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
0/150
提交
取消