go语言设置了gopath,有多个项目怎么设置项目文件夹?

go语言设置了gopath,有多个项目怎么设置项目文件夹?

安装的是go 1.11,windows上安装的,下面这样设置的环境变量:

GOROOT  D:\workspace\go  
PATH    D:\workspace\go\bin
GOPATH  D:\workspace\www\go_work    //GOPATH和GOROOT不能是相同目录

go_work文件夹下面有binpkgsrc三个目录。

问题:
如果存在多个项目,比如project_01project_02project_03,应该把这三个项目文件夹放在什么地方?

阅读 15.2k
3 个回答

以前是放在src文件夹下面的
go1.11支持了go modules 就可以随便你放了 只要不在gopath目录下
如果用旧的方式:就放src下面
用新的:随便放,然后用go mod init一下
两种方式我都用在项目上了 总的来说 现在go mod是有点坑的 但这是未来的趋势

传统的方式是放到src 目录下。举个栗子,你的GOPATH是D:\workspace\www\src\go_work,那么你的项目应该新建目录D:\workspace\www\src\go_work\project_01,D:\workspace\www\src\go_work\project_02。假设project_01 内的结构是

  • main.go
  • file1

    • file1.go(package file1)

假设project_02 内的结构是

  • main.go
  • file2

    • file1.go(package file2)

那么你在project_01 内要想引用project_02的package file2,应该写 import project_02/file2

项目应当这样放,第2层里都是项目名称:

➜  go tree -L 2 $GOPATH/src
/Users/xxxxx/go/src
├── github.com
│   ├── Masterminds
│   ├── cweill
│   ├── davidrjenni
│   ├── tendermint
│   └── uudashr
├── golang.org
│   └── x
├── gopkg.in
│   ├── bsm
│   ├── redis.v4
│   └── yaml.v2
├── govendor
│   ├── LICENSE
│   ├── README.md
│   ├── appveyor.yml
│   ├── cliprompt
│   ├── context
│   ├── doc
│   ├── help
│   ├── internal
│   ├── main.go
│   ├── migrate
│   ├── pkgspec
│   ├── prompt
│   ├── run
│   ├── vcs
│   ├── vendor
│   └── vendorfile
└── sourcegraph.com
    └── sqs
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题