build-web-application-with-golang
build-web-application-with-golang copied to clipboard
为什么要将源代码放在GOPATH目录下的src目录,我放在其他目录也能运行,可以解释下吗
那个路径是import时的其中一个搜索路径, 虽然本地导入也是支持的(最早不支持)。这么做的好处主要是代码重用的提高。但其实这个缺点也挺明显的, 因为它的包管理其实有点乱,如果依赖项的版本不一样导致api都不一样就很麻烦了。所以1.5之后有了Vendor, 这个有点类似nodejs的包管理
放在其他目录也可以,但是需要你配置自己的go path,因为在程序找包的路径的时候,是从你所配置的go path 或者 go root的环境变量目录之下开始查找的,你的go path可以配置多个,应该是用冒号隔开,可以试试
那个路径是import时的其中一个搜索路径, 虽然本地导入也是支持的(最早不支持)。这么做的好处主要是代码重用的提高。但其实这个缺点也挺明显的, 因为它的包管理其实有点乱,如果依赖项的版本不一样导致api都不一样就很麻烦了。所以1.5之后有了Vendor, 这个有点类似nodejs的包管理
eh
現在都用 Go Module 了,不用再理會 GOPATH
了
Go Module之后,管理mod.go文件就可以了。不配置mod的话 import好像是默认只搜索GOROOT
从go mod以后,这么做地好处是方便统一管理代码罢了,毕竟install 本地包会存放到GOPATH下的pkg下面。