golang的外部包导入 基于goland

时间:2024-05-19 14:48:12

基于windows10系统的测试

golang版本为1.13.6 (1.13会默认支持go modules包管理,推荐使用)
首先是新建项目:有两种操作
第一种是直接新建go项目。不推荐使用这一种,这种需要自己手动进行go mod init (项目) 还要取消index entire gopath需要操作的步骤太多不推荐使用
golang的外部包导入 基于goland
第二种创建go modules项目,环境这里需要设置代理。我就省略了已经设置环境变量了golang的外部包导入 基于goland
创建成功后会在目录下创建go.mod文件,同时在项目的外部库这里除了加载Go SDK外会额外加载Go modules(如果不适用go modules包管理这里加载的是gopath)
注意这里的go modules是空的
golang的外部包导入 基于goland

接下来说明如何加载外部库

创建main文件,main文件尝试导入gorm库,会发现这个是标红的,光标放到库名上会浮现 (不能解决 目录 ‘github.com’ ) golang的外部包导入 基于goland
鼠标浮现到加载不了的库上会出现Sync dependencies of awesomeProject:

golang的外部包导入 基于goland

点击就会自动同步GOPATH目录下的pkg.mod文件下以前下载的库(会先联网校验!此操作需要联网)
golang的外部包导入 基于goland

Sync dependencies of awesomeProject: Finished successfully 查看日志出现加载完成会发现项目的
外部库这里已经成功的加载了gorm以及它的依赖

golang的外部包导入 基于goland

查看go.mod会出现加载成功的gorm版本 go.mod附带一个go.sum属性 里面是依赖 也记录外部库中其他加载的库的版本之类的
golang的外部包导入 基于goland

注意上面说的方法是在gopath/pkg/mod目录已经存在的库如何加载

按上面的操作 尝试加载一个我未下载的库会出现下载依赖失败的情况
golang的外部包导入 基于goland
使用go get安装发现成功了, 成功后又可以继续调用了
golang的外部包导入 基于goland
go get安装的库下载到了gopath/pkg/mod
golang的外部包导入 基于goland

强调一下 go.mod文件是整个项目文件最重要的东西之一了

例如我这里加载了一个外部库golang的外部包导入 基于goland
当我删除go.mod文件后 go modules瞬间消失 。由此可见go.mod文件是go的核心(虽然sum文件会保留下来) golang的外部包导入 基于goland
重新创建go.mod文件后又会加载go modules外部库(虽然这是为空)
golang的外部包导入 基于goland
重新添加后 又会添加新加的库
golang的外部包导入 基于goland

这是另外一种添加外部库的方法 通过直接修改go.mod文件来导入外部库!!!

例如我直接到我的源代码区找到gorm
golang的外部包导入 基于goland

添加到go.mod文件内保存 就加载到了外部库
golang的外部包导入 基于goland