main.go
在$GOPATH
. _
我没有导入任何需要包含的外部依赖go.mod
项,我只是想在本地组织这个 Go 模块的源代码。
文件main.go
:
package main
// this import does not work
import "./stuff"
func main() {
stuff.PrintBaz()
}
该文件./stuff/bar.go
(假装是本地包):
package stuff
import "log"
type Bar struct {
Baz int
}
func PrintBaz() {
baz := Bar{42}
log.Printf("Bar struct: %v", baz)
}
文件go.mod
(命令go mod init foo
):
module foo
go 1.12
执行时go run main.go
:
- 如果我
import "./stuff"
,那么我看到了build command-line-arguments: cannot find module for path _/home/<PATH_TO>/fooprj/stuff
。 - 如果我
import "stuff"
,那么我看到了build command-line-arguments: cannot load stuff: cannot find module providing package stuff
。 - 如果我
import stuff "./stuff"
使用包别名,那么我会再次看到:build command-line-arguments: cannot find module for path _/home/<PATH_TO>/fooprj/stuff
.
我找不到使本地包与 go 模块一起使用的方法。
- 上面的代码有什么问题?
- 如何将本地包导入到使用 Go 模块(文件
go.mod
)定义的项目中的其他 Go 代码中?