go语言每个工程是不是都要单独设置GOPATH?
比如我的go项目都统一管理在d:/workspace/go_work/
目录下面,该目录下有3个项目project_01
,project_02
,project_03
:
d:/workspace/go_work/project_01
d:/workspace/go_work/project_02
d:/workspace/go_work/project_03
问题:
1、我的GOPATH
是不是要设置3个,用分号隔开?像下面这样:
d:/workspace/go_work/project_01;d:/workspace/go_work/project_02;d:/workspace/go_work/project_03
2、有100个项目是不是就要在GOPATH
中添加100个?
========anwser=========
GOPATH下有bin pkg src三个目录
1.你的project_01可以放在src的目录下,这样就不需要每次设置了
2.你的project_01放在任意位置,只要不在GOPATH下,使用go mod,前提是你的go版本是1.11
---------
不是,一个系统上(一个用户)只有一个gopath。
gopath/src/ 项目应该放在这里。
gopath/pkg/由go管理,存一些中间编译结果。
gopath/bin/ 用于存放软件程序,go install会将项目编译后复制到此处,然后便可以命令行直接调用。
未来go版本随着gomodule的使用,gopath即将废弃,项目不再依赖于gopath。
-----------
1个GOPATH就可以了,然后许多项目都在里面,比如我的是这样:
➜ go echo $GOPATH
/Users/xxxx/go
➜ go tree -L 2 $GOPATH
.
├── bin
│ ├── bee
│ ├── beeHello
│ ├── cobra
│ ├── dlv
│ ├── fillstruct
│ ├── geth
│ ├── geth-tps
│ ├── glide
│ ├── go-outline
│ ├── go-symbols
│ ├── gocode
│ ├── goconvey
│ ├── godef
│ ├── godoc
│ ├── golint
│ ├── gomodifytags
│ ├── gopkgs
│ ├── goplay
│ ├── gorename
│ ├── goreturns
│ ├── gotests
│ ├── govendor
│ ├── guru
│ ├── hi
│ ├── impl
│ ├── puppeth
│ └── rlpdump
├── pkg
│ └── darwin_amd64
└── src
├── awesomeProject
├── beeHello
├── github.com
├── golang.org
├── gopkg.in
├── govendor
└── sourcegraph.com