build-web-application-with-golang icon indicating copy to clipboard operation
build-web-application-with-golang copied to clipboard

为什么要将源代码放在GOPATH目录下的src目录,我放在其他目录也能运行,可以解释下吗

Open qs991011 opened this issue 6 years ago • 6 comments

qs991011 avatar Sep 06 '18 07:09 qs991011

那个路径是import时的其中一个搜索路径, 虽然本地导入也是支持的(最早不支持)。这么做的好处主要是代码重用的提高。但其实这个缺点也挺明显的, 因为它的包管理其实有点乱,如果依赖项的版本不一样导致api都不一样就很麻烦了。所以1.5之后有了Vendor, 这个有点类似nodejs的包管理

jimmy9065 avatar Oct 30 '18 18:10 jimmy9065

放在其他目录也可以,但是需要你配置自己的go path,因为在程序找包的路径的时候,是从你所配置的go path 或者 go root的环境变量目录之下开始查找的,你的go path可以配置多个,应该是用冒号隔开,可以试试

halloheihei avatar Oct 31 '18 07:10 halloheihei

那个路径是import时的其中一个搜索路径, 虽然本地导入也是支持的(最早不支持)。这么做的好处主要是代码重用的提高。但其实这个缺点也挺明显的, 因为它的包管理其实有点乱,如果依赖项的版本不一样导致api都不一样就很麻烦了。所以1.5之后有了Vendor, 这个有点类似nodejs的包管理

eh

wansichao avatar Jan 02 '20 10:01 wansichao

現在都用 Go Module 了,不用再理會 GOPATH

appleboy avatar Jan 02 '20 11:01 appleboy

Go Module之后,管理mod.go文件就可以了。不配置mod的话 import好像是默认只搜索GOROOT

juliofeng avatar Mar 15 '21 01:03 juliofeng

从go mod以后,这么做地好处是方便统一管理代码罢了,毕竟install 本地包会存放到GOPATH下的pkg下面。

GEYOUR avatar Oct 28 '22 12:10 GEYOUR