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


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

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

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

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

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

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

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

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

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


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 mainimport ("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' 说明你项目环境有问题;


一般来说国内不能直接访问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 方式无效,可以直接通过修改环境变量配置文件中的参数来修改

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


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变量,如下图所示:

那么如果需要在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   // 模块名称可以改为项目文件夹的相同或者时子目录

再次运行相关命令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
 


最后三方依赖引入效果:

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

 六: 运行项目效果:




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




 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot 常用注解

自动装配 ComponentScan 用于配置Spring需要扫描的被组件注解注释的类所在的包。 Component 用于标注一个普通的组件类,它没有明确的业务范围,只是通知Spring被此注解的类需要被纳入到Spring Bean容器中并进行管理。 Autowired Autowired用于自动装配…

Java实现业务异步的几种方案

背景: 在java中异步线程很重要,比如在业务流处理时,需要通知硬件设备,发短信通知用户,或者需要上传一些图片资源到其他服务器这种耗时的操作,在主线程里处理会阻塞整理流程,而且我们也不需要等…

百度发布全新 AI 互动式搜索:百度简单搜索

本心、输入输出、结果 文章目录 百度发布全新 AI 互动式搜索:百度简单搜索前言主要能力 相关资料能力介绍 百度搜索升级发文告用户如何获取百度简单搜索百度简单搜索的定位百度简单搜索在 APP 上面的体验讨论和点评我们关注的几个问题 弘扬爱国精神 百度发布全新 AI…

【yolov8目标检测】使用yolov8训练自己的数据集

目录 准备数据集 python安装yolov8 配置yaml 从0开始训练 从预训练模型开始训练 准备数据集 首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说…

安防视频监控平台EasyCVR出现视频流播放卡顿情况,如何优化?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能/大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼…

A062-防火墙安全配置-配置Iptables防火墙策略

实验步骤: 【教学资源类别】 序号 类别 打勾√ 1 学习资源 √ 2 单兵模式赛题资源 3 分组对抗赛题资源 【教学资源名称】 防火墙安全配置-配置安全设置iptables防火墙策略 【教学资源分类】 一级大类 二级大类 打勾√ 1.安全标准 法律法规 行业标准 安全…

离线语音与IoT结合:智能家居发展新增长点

离线语音控制和物联网(IoT)相结合在家居中具有广泛的应用和许多优势。离线语音控制是指在设备在本地进行语音识别和处理,而不需要依赖云服务器进行处理。IoT是指借助网络,通过手机APP、小程序远程控制家居设备。 启英泰伦基于AI语…

Kotlin中的选择结构语句

在Kotlin中,选择结构语句有多种形式,包括条件分支、三元表达式、if-else if-else语句、when语句等。下面将逐个说明每种形式的使用。 条件分支: var max: Int 0 var a: Int 5 var b: Int 6if (a > b) {max a } else {max b }printl…

React Native 学习 之 环境搭建(andoid)

依赖安装 编辑器随意,因为编译构建以及打包和编辑器无关 Node Node 的版本应大于等于 16,需要node的原因是因为react native基于react做了很多工作,需要npm安装模块 JDK andiod开发底层需要java需要jdk,同时react native要求…

WLAN 无线案例(华为AC控制器配置模板)

实验说明: 无线用户VLAN 30 192.168.30.0/24 AP和AC用VLAN 20 192.168.20.0/24 有线网段 VLAN 10 192.168.10.0/24 步骤一:全网互通 sw1: sysname sw1 # vlan batch 10 20 30 # dhcp enable # ip pool 20 gateway-list 192.168.20.1…

React合成事件

一、合成事件 event 是 SyntheticEvent ,模拟出来 DOM 事件所有能力 event.nativeEvent 是原生事件对象 所有的事件,都被挂载到 document 上(React ≤ 16),React17之后是挂载到root组件 和 DOM 事件不一样&#xff…

electron安装失败时配置

electron下载前配置 使用命令打开npm全局配置,C盘下的.npmrc文件。 npm config edit 然后在空白处添加 electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron-builder-binaries/ electron_mirrorhttps://cdn.npmmirror.com/binaries/electr…

Defects4j数据集安装及使用

0、常见问题 1. 所有配置完成后运行defects4j info -p Lang测试出现错误 Cant locate DBI.pm in INC (you may need to install the DBI module) (INC contains: /myproject/defects4j/framework/lib /myproject/defects4j/framework /myproject/defects4j/framework/core /m…

【VS2022】Microsoft 源代码注释语言 SAL

M i c r o s o f t Microsoft Microsoft 源代码注释语言 S A L SAL SAL /*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 通信与信息专业大二在读 * * brief Microsoft 源代码注释语言 SAL* * copyright 2023.10* COPYRIGHT 原创…

Makefile文件里的赋值方法(第三节)

时间是我们唯一拥有的东西了,利用时间,发挥光芒。——张顺 文章目录 什么是赋值Makefile当中的赋值赋值符号=延时赋值(不要觉得简单就跳过,和你平时学的不一样):=立即赋值?=条件赋值+=追加赋值结束什么是赋值 常见赋值:(实例1.1) #include <stdio.h>int main(…

【计算机网络笔记】计算机网络性能(1)——速率、带宽、延迟

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 系列文章目录速率带宽延迟/时延(delay或latency) 下面介绍一些计算机网络中常用的性能指标。在本篇中涉及速…

创建React Native的第一个hello world工程

创建React Native的第一个hello world工程 需要安装好node、npm环境 如果之前没有安装过react-native-cli脚手架的&#xff0c;可以按照下述步骤直接安装。如果已经安装过的&#xff0c;但是在使用这个脚手架初始化工程的时候遇到下述报错的话 cli.init(root, projectname);…

WordPress导航主题蘑菇导航源码

蘑菇导航的列表页有两种风格&#xff0c;分别对应宽屏、窄屏。可以点击 文章。博客查看演示。文章页也是如此&#xff0c;这两种风格可以在后台设置。 本站菜单中的 VIP解析、音乐、图床&#xff0c;是单独的源码&#xff0c;不包含在本次主题中。后期看大家的要求&#xff0c…

SSH连接华为交换机慢

ssh连接交换机慢是因为交换计算密钥算法阶段默认使用安全性更高的秘钥&#xff0c;由于性能问题导致连接比较慢&#xff0c;如一台华为S5735S-L24T4S-QA2的交换机默认使用如下秘钥&#xff0c;安全行由高到低。 ssh server key-exchange dh_group16_sha512 dh_group15_sha512 …

Android 优化 - 磁盘缓存DiskLruCache

一、概念 用于实现存储设备缓存&#xff0c;即磁盘缓存&#xff0c;通过将缓存对象写入文件系统从而实现缓存的效果。 二、使用 2.1 添加依赖 最新依赖 implementation "com.jakewharton:disklrucache:2.0.2" 2.2 配置权限 <uses-permission android:name&qu…