在引入本地包的时候,要么放到gopath路径的src下,要么使用gomod方法,选择第二种,在目录文件下执行命令 go mod init ”modelname“,然后就可以根据这个modelname文件夹下进行相对路径的引用。
必须到gomodtest路径下执行才可以,在外面执行就不行。
对于gomod的来源,可借鉴于# golang 系列: go mod 使用:
在我们开发程序时,经常会引用到第三方开源框架提供的方法。按 Go 以前的做法会先将开源项目的最新代码通过 go get 下载本地的 GOPATH 目录。然后在需要使用的时候,就到对应的 GOPATH 目录去查找了。
然而,这里需要考虑一个问题,就是不同时间点 go get 下载下来的代码可能是不一样的,因为第三方开源框架总会进行代码升级,此时不能保证各个开发者的本地环境依赖包都是同一个版本。
而这就无形中增加了维护的成本,每次升级得手动删除,然后重新引用。
特别是在使用 docker 或 k8s 这种需要重新构建环境的发布方式时, 更得注意这个问题了,因为谁也不知道最新的依赖包修改了哪些内容,是否有破坏性变更存在。
此时,就该 go mod 登场了,它通过在 go.mod 这个文件里记录了当前项目里所有依赖包的 git 仓库地址以及对应的**版本号**,来解决了包依赖管理的问题,后续在构建编译时,就会根据对应的版本号去拉取依赖包。也就是说只要我们维护了 gomod 文件,依赖问题就不再是问题了。
用vscode想要进行多文件编程的话,如果使用gopath的话,就会出现找不到新的模块的包路径,就得需要使用GO后续推出的gomod方法替代gopath,gomod主要用于工程模块的编写,而对于gopath的话用来存取全局的一些配置。
还需要注意一点的事,多文件编译运行的时候,每个mod里面的函数第一个字母需要大写,原因暂时不清楚