3 回答
TA贡献1860条经验 获得超8个赞
来自“模块是否可以与相对导入一起使用,例如导入“./subdir”? ”
在模块中,最终有一个子目录的名称。
如果父目录显示“
module m
”,则子目录将导入为“m/subdir
”,而不是“./subdir
”。
在你的情况下:
import "github.com/Aragami1408/go-gorm/db". # or maybe import "go-gorm/db"
TA贡献1804条经验 获得超8个赞
如果您使用 go 模块,您可以使用以下命令将您的包替换为本地包:
go mod edit -replace github.com/username/project=/localpath
然后就打电话
go get github.com/username/project
一切都应该正常。
TA贡献1829条经验 获得超7个赞
当迁移到“包管理器”时,您可以go mod使用以下命令创建文件:
go mod init myhost/myrepo/mymodule
然后将创建文件go.mod:
module myhost/myrepo/mymodule
go 1.15
现在您可以利用此文件列出对其他模块的依赖项:
# i.e: your module mymodule depends on github.com/gorilla/mux
go get github.com/gorilla/mux
你运行它吗?然后再次检查内容go.mod
module myhost/myrepo/mymodule
go 1.15
require (
github.com/gorilla/mux v1.7.4
)
您很高兴,因为您利用了包管理器功能并且像老板一样管理依赖项。
然而,...
但是,您忘记了需要维护所有导入具有相对路径的目录的 go 文件。
例子 :
如果你有main.go
package main
import (
"fmt"
"./router" // !! RELATIVE PATH
)
您还必须通过将相对路径替换为 来进行迁移[module-name]/relative-path。在这种情况下,它必须变成:
package main
import (
"fmt"
"myhost/myrepo/mymodule/router" // !! 💼 No more RELATIVE PATH
)
- 3 回答
- 0 关注
- 144 浏览
添加回答
举报