Go语言入门心法(九): 引入三方依赖

Go语言入门心法(九): 引入三方依赖_第1张图片


Go语言入门心法(一): 基础语法

Go语言入门心法(二): 结构体

Go语言入门心法(三): 接口

Go语言入门心法(四): 异常体系

 Go语言入门心法(五): 函数

Go语言入门心法(六): HTTP面向客户端|服务端编程

Go语言入门心法(八): mysql驱动安装报错onnection failed

Go语言入门心法(九): 引入三方依赖

Go语言入门心法(十):Go语言操作MYSQL(CRUD)

Go语言入门心法(十一): 文件处理 

Go语言入门心法(十二): GORM映射框架

Go语言入门心法(十三): 反射认知升维

 


http://golang.org/pkg/database/sql/
Examples · go-sql-driver/mysql Wiki · GitHub
GitHub - VividCortex/go-database-sql-tutorial: A tutorial for Go's database/sql package



一: go依赖三方模块

当项目中需要引入三方依赖,此时要让依赖被我们项目模块识别,需要作系列操作,本文我们一引入mysql数据库驱动为例,说明引入操作的步骤,开发工具使用的是Goland IDEA;

1.1 如在项目中引入:_ "github.com/go-sql-driver/mysql"

package main

import (
	"database/sql"
	"fmt"
	"log"
	// 注册驱动器 _下划线表示执行驱动中的init函数,不使用其他函数
	_ "github.com/go-sql-driver/mysql"
)

/*
go语言连接mysql数据库操作:
*/
func main() {
	db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/tope-pay-user")
	if err != nil {
		fmt.Println("数据库连接异常: ", err)
	}

	// 延迟执行Closer()函数
	defer db.Close()

	// 验证连接的可用性
	err = db.Ping()
	if err != nil {
		log.Fatal("数据库连接失败:", err)
	}
	log.Println("数据库连接成功")
}

如果遇到如下错误:Cannot resolve symbol 'github.com' 说明你项目环境有问题;


Go语言入门心法(九): 引入三方依赖_第2张图片

一般来说国内不能直接访问golang官方包:所以需要做个代理就是设置GOPROX环境变量

设置了Go语言的环境变量:

go env -w GO111MODULE=on
 
go env -w GOPROXY=https://goproxy.cn,direct

设置完后,在GoLand控制台执行go mod download在执行下载mod报错:

报错信息是连接不上官方网址,可是我明明走了代理不访问官方网址,走https://goproxy.cn的啊。开始查找原因。

golang 配置go env参数时报错
warning: go env -w GOPROXY=… does not override conflicting OS environment variable
解决方法:
说明当前配置已在系统环境变量配置文件中配置,使用go env -w 方式无效,可以直接通过修改环境变量配置文件中的参数来修改

二: 查看自己本地环境配置情况


Go语言入门心法(九): 引入三方依赖_第3张图片

GO111MODULE 环境变量用于开启或关闭 Go 语言中的模块支持,它有 off、on、auto 三个可选值,默认为 auto。

GO111MODULE=off
无模块支持,go 会从 $GOPATH 文件夹和 vendor 目录中寻找依赖项。

GO111MODULE=on
模块支持,go 忽略 $GOPATH 文件夹,只根据 go.mod 下载依赖。

GO111MODULE=auto
在 $GOPATH/src 外层且根目录有 go.mod 文件时,开启模块支持;否者无模块支持。


三:  配置go env参数时报错寻根

warning: go env -w GOPROXY=… does not override conflicting OS environment variable


说明我们一家设置了goproxy代理变量,本文是在goland开发工具中设置GOPROXY变量,如下图所示:

Go语言入门心法(九): 引入三方依赖_第4张图片

那么如果需要在cmd中设置,可以去掉IDEA中设置即可;

四: 在cmd中设置变量遇 missing go.sum entry; to add it: 错误

类似这种的错误: missing go.sum entry; to add it: 

 D:\program_file\go_workspace> go mod tidy
go: go.mod file not found in current directory or any parent directory; see 'go help modules'

这个意思go.mod文件中不包括当前运行该命令的目录,运行该命令目录要么是go.mod文件什么的模块目录,或者是该运行目录下的子目录; 


我们在,项目根目录文件夹下创建一个go.mod文件,该文件由goland自动生成: 在项目"根"目录下:鼠标右键-->new-->Go Modules File 点击该选项,就会在根目录下生成一个go.mod文件

go.mod文件内容如下:

// module 默认自动生成的文项目文件夹的名称

module  go_workspace   // 模块名称可以改为项目文件夹的相同或者时子目录

Go语言入门心法(九): 引入三方依赖_第5张图片

再次运行相关命令Ok
PS D:\program_file\go_workspace> go mod tidy
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
PS D:\program_file\go_workspace> cd .\org.jd.data\
PS D:\program_file\go_workspace\org.jd.data> go mod tidy
PS D:\program_file\go_workspace\org.jd.data> go mod tidy
PS D:\program_file\go_workspace\org.jd.data> cd ..
PS D:\program_file\go_workspace> go mod tidy
PS D:\program_file\go_workspace> go mod tidy
PS D:\program_file\go_workspace> go mod tidy
PS D:\program_file\go_workspace> go mod tidy
 

五: 在该目录中引入三方依赖即可

引入语法:

require (
    // 该处引入三方依赖
    github.com/go-sql-driver/mysql v1.7.1
)

如下载安装redis最新依赖:

PS D:\program_file\go_workspace> go install github.com/go-redis/redis@latest
go: downloading github.com/go-redis/redis v6.15.9+incompatible

或者运行:下载redis三方依赖

PS D:\program_file\go_workspace>go get github.com/go-redis/redis


最后三方依赖引入效果:

Go语言入门心法(九): 引入三方依赖_第6张图片

引入成功后,在idea工具中可以看到引入的第三方模块

Go语言入门心法(九): 引入三方依赖_第7张图片

 六: 运行项目效果:


Go语言入门心法(九): 引入三方依赖_第8张图片



更多详细看官方文档: Go模块依赖解决详细文档|及打包发布解决方案




 

你可能感兴趣的:(golang,开发语言,后端)