我使用GOPATH,但对于这个当前的问题,我面对它没有帮助。我想要能够创建特定于项目的包:
myproject/ ├── binary1.go ├── binary2.go ├── package1.go └── package2.go
我尝试了多种方式,但我如何得到package1.go工作在binary1.go或binary2.go等等?
例如;我想能够导入“package1”,然后能够运行go build binary1.go,一切正常,没有错误被抛出,该软件包找不到GOROOT或GOPATH。我需要这种功能的原因是大型项目;我不想参考多个其他包或将它们保存在一个大文件。
虽然我的旧方式工作,不再是“正确的”方式做到这一点。您应该使用默认情况下在Go 1.6中启用的供应商功能;您基本上在供应商目录中添加您的“外部”或“依赖”包;在编译时,编译器将首先使用这些包。
找到。我可以导入本地包与GOPATH通过创建package1的子文件夹,然后导入与import1.go和binary2.go脚本中导入“./package1”,像这样:
binary1.go
... import ( "./package1" ) ...
所以我当前的目录结构看起来像这样:
myproject/ ├── binary1.go ├── binary2.go ├── package1/ │ └── package1.go └── package2.go
我还应该注意,相对路径(至少在go 1.5)也工作;例如:
import "../packageX"