我已经习惯了,GOPATH
但是对于当前问题,我却无济于事。我希望能够创建特定于项目的软件包:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
我尝试了多种方法,但是如何package1.go
在binary1.go
或上工作binary2.go
,以此类推?
例如; 我希望能够import "package1"
然后能够运行,go build binary1.go
并且一切正常,而不会引发在GOROOT
或上找不到软件包的错误GOPATH
。我需要这种功能的原因是针对大型项目;我不想引用多个其他软件包或将它们保存在一个大文件中。
.go
单个目录中的所有文件都是同一软件包的一部分,并且您不必将import
文件放在同一软件包(即同一目录)中。您提到了在GOPATH之外进行工作,这是新的Go模块系统的功能之一。这个答案盖的模块结构,导入本地包,一个模块内设置的包,是否要在单个存储库中的多个模块等
git/repo/to/my/project
路径,否则您基本上无法导入本地子包?我只是不明白为什么有人想要这种行为。如果将项目移动到另一个位置(即Docker映像),该怎么办,您需要再次更改所有路径?我正在寻找答案,为什么这是如此复杂。