go mod tidy用途以及拉取etcd依赖包报错解决

go mod tidy的作用

go mod tidy的作用 - 简书 (jianshu.com)https://www.jianshu.com/p/7675b8923878

使用go的时候我们一般都会使用go mode 管理。

有些时候merge的时候,会出现go.sum冲突,然后合并冲突后,解决go.sum不合法的情况。

这个时候我们一般会执行go mod tidy命令。

那么go mod tidy是干什么的呢?

go mod tidy的使用

  1. 引用项目需要的依赖增加到go.mod文件。
  2. 去掉go.mod文件中项目不需要的依赖。
    下面我们会现场演示这两个作用。

前置准备:

  1. 环境linux系统

开始演示:

1. 引用项目需要的依赖增加到go.mod文件。

1.1 随便找一个文件夹,执行命令go mod init learn新建一个go mod 的项目。

1.2 新建文件uuid.go
vim uuid.go
然后复制以下内容

package main

import (
    "fmt"
    "strings"

    "github.com/pborman/uuid"
)

func main() {
    uuidWithHyphen := uuid.NewRandom()
    uuid := strings.Replace(uuidWithHyphen.String(), "-", "", -1)
    fmt.Println(uuid)
}

然后保存
wq!

1.3 执行命令 go mod tidy

使用cat go.mod查看go.mod文件会发现多了一行

2. 删除go.mod文件中引用项目不需要的依赖。

执行rm -r uuid.go删除uuid.go文件,然后执行go mod tidy -v其中-v可以显示整个命令的执行过程

执行命令cat go.mod
查看go.mod文件


执行的依赖没有了。

解决 go module 拉取 etcd 相关依赖包引发的错误

gomodule拉取etcd依赖包时会报错:

go.etcd.io/etcd/clientv3 tested by
        go.etcd.io/etcd/clientv3.test imports
        github.com/coreos/etcd/auth imports
        github.com/coreos/etcd/mvcc/backend imports
        github.com/coreos/bbolt: github.com/coreos/bbolt@v1.3.5: parsing go.mod:
        module declares its path as: go.etcd.io/bbolt
                but was required as: github.com/coreos/bbolt

引起以上的原因主要是etcd中使用的bbolt和grpc版本冲突引起

go mod init
 
go mod edit -replace github.com/coreos/bbolt=go.etcd.io/bbolt@v1.3.4

go mod edit -replace google.golang.org/grpc=google.golang.org/grpc@v1.26.0
 
go mod tidy

如此即可避免etcd相关错误

如何引入一个本地包:(注意:这种情况下是不能标注版本号的

go mod edit -replace ddis=../ddis

解决 VScode 报错【gopls requires a module at the root of your workspace】

setting.json添加

"gopls": {
    "experimentalWorkspaceModule": true,
}

参考:

vscode报错:gopls requires a module at the root of your workspace._学习让人快乐呀的博客-CSDN博客_gopls 报错icon-default.png?t=M4ADhttps://blog.csdn.net/qq_45993646/article/details/123008389

使用Go Modules引入本地包_StaticAuto的博客-CSDN博客_go mod 使用本地包https://blog.csdn.net/StaticAuto/article/details/123083031

解决go mod拉取etcd依赖包报错的问题_思维的深度的博客-CSDN博客https://skaygo.blog.csdn.net/article/details/111060465Etcd使用go module的灾难 - Go语言中文网 - Golang中文社区 (studygolang.com)https://studygolang.com/articles/28589

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值