为了账号安全,请及时绑定邮箱和手机立即绑定

没有远程存储库的 Go 模块?

没有远程存储库的 Go 模块?

Go
萧十郎 2022-06-06 17:41:11
我试图让 Go 模块在不涉及远程存储库的情况下工作。src是一个本地目录,其中包含我所有的项目,还有用 Go 以外的其他语言编写的项目。为简单起见,我只显示了与我的问题相关的两个目录:src ├── client │   ├── go.mod │   └── main.go └── lib     ├── go.mod     └── lib.go这些go.mod文件是通过运行命令go mod init clientinsrc/client和go mod init libin来创建的src/lib。src/client/main.go:package mainimport "lib"func main() {    lib.Hello()}src/lib/lib.go:package libimport "fmt"func Hello() {    fmt.Println("Hello World")}我想要做的是在我的 main.go 中使用库 lib.go,但无论我在导入路径中放入什么,都会显示此错误:main.go:3:8: package lib is not in GOROOT (/usr/lib/go/src/lib)Go 版本是go1.14.3如何从本地文件夹正确导入 Go 代码?
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您可以使用replace指令。


项目结构:


root

 ├── client

 │   ├── go.mod

 │   └── main.go

 └── lib

     ├── go.mod

     └── lib.go

go.modroot/lib模块:


module github.com/owner/root/lib


go 1.13

go.modroot/client模块:


module github.com/owner/root/client


go 1.13


require github.com/owner/root/lib v0.0.0


replace github.com/owner/root/lib => ../lib

这太可怕了,如果没有 VCS,你真的必须为每次导入都这样做吗?


不, replace指令替换模块的特定版本的内容,并包括属于替代模块的包。


root

 ├── client

 │   ├── go.mod

 │   └── main.go

 └── lib

     ├── utils

     │   └── util.go

     ├── libs

     │   └── lib.go

     └── go.mod

package main


import (

    "github.com/owner/root/lib/utils"

    "github.com/owner/root/lib/libs"

)


func main() {

    //...

}


查看完整回答
反对 回复 2022-06-06
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信