我有一个名为“tatata”的 Go 模块。它只在我的机器上开发,因此它不包含模块名称中任何 URL 的任何路径。
如果我的模块中只有一个main包,它可以正常工作。但是,如果我在模块中创建两个包,我会遇到一些问题。
这是树:
./|
|- go.mod
|-src
|- main
| | - main.go
|
|- api
| - api.go
文件内容:
go.mod
module tatata
go 1.13
main.go
package main
import "fmt"
import "tatata/api"
func main() {
fmt.Println("Hello world")
api.Test1()
}
api.go
package api
import "fmt"
func Test1() {
fmt.Println("Testing API")
}
当我尝试构建时,我发出go build ./src/main并收到以下错误: build tatata/src/main: cannot load tatata/api: malformed module path "tatata/api": missing dot in first path element
现在,如果我尝试放置一个虚拟点,例如将模块重命名为tatata.com我会收到错误build tatata.com/src/main: cannot load tatata.com/api: cannot find module providing package tatata.com/api,因为显然我的包/模块在该 URL 中不可用。
GOPATH为空,即未设置。
问题:
a) 什么是正确的方法,即在单个 Go 模块中使用多个包时命名模块和导入?
b) 是否不可能有一个名称中没有点的 Go 模块?!
c)您能否指出任何具有单个 go 模块和模块中的多个包的构建设置的工作示例?
MM们
潇湘沐
慕无忌1623718
相关分类