首页 >后端开发 >Golang >Go 的'go get”命令可以从本地服务器存储库检索包吗?

Go 的'go get”命令可以从本地服务器存储库检索包吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-07 11:35:12353浏览

Can Go's `go get` Command Retrieve Packages from a Local Server Repository?

Go 可以在本地服务器上使用存储库吗?

是的,Go 允许您从托管在本地服务器上的存储库检索包和模块本地服务器,即使它是私有存储库。以下是如何使用 Go get 来处理此类存储库:

使用 GOPATH 模式

如果您在 GOPATH 模式下使用 Go,则需要添加将以下环境变量添加到您的系统中:

GOPATH=/path/to/local/repo

此设置将指示 Go 在其中查找包和模块指定的本地目录。请记住,路径应该是包含 git 存储库的目录的绝对路径。

调整 Go get 命令

使用 Go 从本地存储库检索包或模块获取,将以下格式附加到命令:

[email protected]:/--path--/--to--/--repository.git//--package--/--or--/--module--

注意:

  • 将 --path--/--to--/--repository.git 替换为相对或本地存储库的绝对路径。
  • 将 --package--/--or--/--module 替换为包的名称或您想要检索的模块。

示例:

假设您在 /srv/git/liqid.git 有一个本地存储库,并且想要检索液体包。您可以使用以下命令:

go get [email protected]:/srv/git/liqid.git/liqid

注意:在 GOPATH 模式下使用 Go 时避免使用 path@version 语法。

使用模块

使用模块时,您需要确保以下环境变量是set:

GOPRIVATE=192.168.xxx.yyy/mygitrepo/*,github.com/my-username/*

注意: 将 192.168.xxx.yyy/mygitrepo 替换为本地仓库的 IP 地址和仓库名称。通过附加逗号来指定其他私有存储库。

执行 Go get

要从本地存储库检索模块,请使用以下命令:

go get [email protected]:/--path--/--to--/--module--

示例:

检索mymodule 模块来自 /srv/git/mymodule.git,您可以使用以下命令:

go get [email protected]:/srv/git/mymodule.git

其他注意事项:

  • 确保您有SSH 密钥访问您的本地存储库。
  • 您的本地服务器应该有 SSHD
  • 如果本地服务器的主机名不包含点 (.),请使用其 IP 地址。
  • Go 将下载的包和模块缓存在 $GOPATH/pkg/mod 中。
  • 您可以使用 go mod download 命令显式下载模块。
  • go env -w GOPRIVATE= 语法可以用于设置多个私有仓库。
  • 更多信息和最佳实践,请参考 Go 官方文档。

以上是Go 的'go get”命令可以从本地服务器存储库检索包吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn