我对如何布局我的 Go 项目以及如何构建它感到困惑。我对 Go 相当陌生,并且相信在 <1.13 的时候 GOPATH 很重要。我使用的是 1.14,所以我相信我不必关心这一点,并且没有设置 GOPATH。我不(目前)在 GitHub 上托管我的代码(这是各种文章所假设的)。我读过很多东西,但这一切都让我更加困惑:
https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies
https://www.wolfe.id.au/2020/03/10/starting-a-go-project/
https://talks.golang.org/2014/organizeio.slide#1
我已经根据这个布置了我的项目:https ://github.com/golang-standards/project-layout 。(除了这个项目似乎使用了 Makefile。我不想写 Makefile。我相信这应该在没有 Makefile 的情况下工作。我真的不想写 Makefile。)
这是结构:
/src
/cmd
main.go
/internal
helper.go
go.mod
go.mod 看起来像这样:
module mycompany/mymodule
go 1.14
service.go 看起来如下 package main // 这必须被称为 'main'
import (
"mycompany/mymodule/internal/helper"
)
func main () {
helper.greet("Jenny")
}
所以,如果我进入/src并运行,build cmd/service.go我会得到 cmd/service.go:4:2: package mycompany/mymodule/internal/helper is not in GOROOT (/usr/local/Cellar/go/1.14.5/libexec/src /mycompany/mymodule/internal/helper)
我必须先编译helper.go吗?手动?肯定不是。go build当然应该能够构建我的整个项目,对吧?包括所有依赖项。有人可以告诉我我错过了什么吗?
红糖糍粑
相关分类