首页 >后端开发 >Golang >如何导入本地Go模块而不发布它?

如何导入本地Go模块而不发布它?

Patricia Arquette
Patricia Arquette原创
2024-12-19 00:59:11729浏览

How Can I Import a Local Go Module Without Publishing It?

导入本地 Go 模块而不发布

问题:

在 Go 项目中,您想要导入 GOPATH 外部的模块,而不将其发布到 GitHub 或其他地方。但是,您遇到错误:“无法找到路径 [模块名称] 的模块。”尽管使用“go mod init [模块名称]”初始化模块,该模块仍然无法访问。

答案:

要导入本地 Go 模块而不发布它:

使用替换指令需要

  1. 在主模块的 go.mod 文件中,添加以下行:
require "module-name" v0.0.0
replace "module-name" v0.0.0 => "{local path to the module}"
  1. 将 {本地路径替换为module} 与本地根目录的绝对或相对路径module.

说明:

Go 的模块系统从指定路径检索模块。通过使用替换指令,您可以覆盖预期路径并将其指向本地模块。这允许您导入模块而不发布它。

从模块导入包:

从本地模块导入包,例如 util:

import "module-name/util"

详细信息:

Go 模块需要唯一标识符,通常对应于公共路径。但是,replace 指令允许您使用自定义路径。此方法不依赖于公开可用的模块,而是帮助您处理不打算发布的本地模块。

有关更多信息,请参阅 Go 模块文档:

  • [我可以在本地文件系统上完全脱离 VCS 工作吗?](https://go.dev/doc/modules/faq#local)
  • [什么时候应该使用替换指令?](https://go.dev/doc/modules/replace)

以上是如何导入本地Go模块而不发布它?的详细内容。更多信息请关注PHP中文网其他相关文章!

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