返回顶部
首页 > 资讯 > 后端开发 > GO >gomodules中replace使用方法
  • 348
分享到

gomodules中replace使用方法

2024-04-02 19:04:59 348人浏览 八月长安
摘要

目录使用replace替换package示例使用replace替换package 因为某些未知原因,并不是所有的包都能直接用Go get获取到,这时我们就需要使用go modules

使用replace替换package

因为某些未知原因,并不是所有的包都能直接用Go get获取到,这时我们就需要使用go modules的replace功能了。

replace顾名思义,就是用新的package去替换另一个package,他们可以是不同的package,也可以是同一个package的不同版本。看一下基本的语法:

go mod edit -replace=old[@v]=new[@v]

old是要被替换的package,new就是用于替换的package。

这里有几点要注意:

  • replace应该在引入新的依赖后立即执行,以免go tools自动更新mod文件时使用了old package导致可能的失败
  • package后面的version不可省略。(edit所有操作都需要版本tag)
  • version不能是master或者latest,这两者go get可用,但是go mod edit不可识别,会报错。(不知道是不是bug,虽然文档里表示可以这么用,希望go1.12能做点完善措施)

基于以上原因,我们替换一个package的步骤应该是这样的:

  • 首先go get new-package(如果你知道package的版本tag,那么这一步其实可以省略,如果想使用最新的版本而不想确认版本号,则需要这一步)
  • 然后查看go.mod,手动复制new-package的版本号(如果你知道版本号,则跳过,这一步十分得不人性化,也许以后会改进)
  • 接着go mod tidy或者go build或者使用其他的go tools,他们会去获取new-package然后替换掉old-package
  • 最后,在你的代码里直接使用old-package的名字,golang会自动识别出replace,然后实际你的程序将会使用new-package,替换成功

下面我们仍然用chromedp的example做一个示例。

示例

chromedp使用了golang.org/x/image,这个package一般直连是获取不了的,但是它有一个GitHub.com/golang/image的镜像,所以我们要用replace来用镜像替换它。

我们先来看看如果不replace的情况下的依赖情况:

没错,我们使用了原来的包,当然如果你无法获取到它的话是不会被记录进来的。

下面我们go get它的镜像:

# master表示获取最新的commit
go get github.com/golang/image@master

然后我们查看版本号:

cat go.mod

有了版本号,我们就能replace了:

go mod edit -replace=golang.org/x/image@v0.0.0-20180708004352-c73c2afc3b81=github.com/golang/image@v0.0.0-20180708004352-c73c2afc3b81

现在我们查看一下go.mod:

replace信息已经更新了,现在我们只要go mod tidy或者go build,我们的代码就可以使用new-package了。

更新后的go.sum,依赖已经替换成了镜像:

目前来看,replace做的远不如go get那样方便人性化,不过毕竟还只是测试阶段的功能,期待一下它在go1.12的表现吧。

以上就是go modules中replace使用方法的详细内容,更多关于go modules使用replace的资料请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: gomodules中replace使用方法

本文链接: https://lsjlt.com/news/151809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • gomodules中replace使用方法
    目录使用replace替换package示例使用replace替换package 因为某些未知原因,并不是所有的包都能直接用go get获取到,这时我们就需要使用go modules...
    99+
    2024-04-02
  • VBS中Replace方法的使用
    本篇内容介绍了“VBS中Replace方法的使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Replace 方法替换在正则表达式查找中找到...
    99+
    2023-06-08
  • Javascript中如何使用replace()方法
    本篇文章为大家展示了Javascript中如何使用replace()方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Javascript中replace()方法在...
    99+
    2024-04-02
  • golang中strings包的Replace使用方法
    这篇文章将为大家详细讲解有关golang中strings包的Replace使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。函数声明:func Trim(s string...
    99+
    2023-06-14
  • mysql中replace函数的使用方法
    mysql 中的 replace() 函数用于替换字符串中的字符或子字符串,其语法为:replace(string, search_string, replace_string)。它支持...
    99+
    2024-04-29
    mysql
  • oracle中replace函数的使用方法
    oracle 中的 replace 函数用于将字符串中指定的子字符串替换为另一个子字符串,使用方法包括:1. 替换文本中的错误或拼写错误;2. 更改字符串内容;3. 从字符串中...
    99+
    2024-05-03
    oracle
  • java replace方法怎么使用
    Java中replace方法用于替换字符串中的指定字符或者字符串。它有两个重载的方法:1. `replace(char oldCha...
    99+
    2023-09-20
    java
  • mysql中replace的使用方法是什么
    在MySQL中,REPLACE语句用于替换表中的数据。其语法如下: REPLACE INTO table_name (col...
    99+
    2024-04-28
    mysql
  • js中replace()方法怎么用法
    这篇文章将为大家详细讲解有关js中replace()方法怎么用法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaS...
    99+
    2023-06-14
  • php中replace正则替换方法的使用
    本篇内容主要讲解“php中replace正则替换方法的使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中replace正则替换方法的使用”吧!php replace函数用于执行一个正则表...
    99+
    2023-06-20
  • JavaScript的replace()方法怎么使用
    replace() 方法用于在字符串中查找指定的值,并将其替换为新的值。它可以接受两个参数:第一个参数是要查找的值,可以是字符串或正...
    99+
    2023-09-05
    JavaScript
  • JS的replace方法怎么使用
    replace方法是用来替换字符串中指定的子字符串并返回一个新的字符串。它接受两个参数,第一个参数是要被替换的子字符串或正则表达式,...
    99+
    2024-03-01
    js
  • Python中如何使用replace()方法去除空格
    这篇文章给大家分享的是有关Python中如何使用replace()方法去除空格的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。replace()方法可以去除全部空格replace主...
    99+
    2024-04-02
  • SQL中replace函数的使用方法是什么
    在SQL中,REPLACE函数用于替换字符串中的子字符串。其基本语法如下: REPLACE(string, old_subs...
    99+
    2024-04-09
    SQL
  • python中replace的用法
    python 中的 replace() 函数用于在字符串中查找并替换指定的子字符串,其语法为:str.replace(old, new, count)。它可以替换所有匹配项(count=...
    99+
    2024-05-15
    python
  • mysql中replace的用法
    mysql 中 replace 语句用于替换表中已有的数据,如果表中存在与插入数据主键相同的数据行,它会替换该行的数据。具体语法为:replace into table_name (co...
    99+
    2024-08-06
    mysql
  • JavaScript String replace()方法怎么用
    JavaScript中的replace()方法用于替换字符串中的指定字符或模式。replace()方法的语法如下:```javasc...
    99+
    2023-10-12
    JavaScript
  • python中replace怎么使用
    在Python中,replace()方法可以用于替换字符串中的指定子字符串。replace()方法的基本语法如下:pythonstr...
    99+
    2023-10-18
    python
  • MYSQL中Replace Into的用法
    新建一个test表,三个字段,id,title,uid,  id是自增的主键,uid是唯一索引; 插入两条数据: 1 insert into test(title,uid) VALUES (‘123465‘,‘1001‘); 2 ins...
    99+
    2020-09-22
    MYSQL中Replace Into的用法 数据库入门 数据库基础教程 数据库 mysql
  • downplus中的无效使用 Null: ‘replace’错误的解决方法
    错误全部文本如下: Microsoft VBScript 运行时错误 错误 '800a005e' 无效使用 Null: 'replace' /XXX/inc_function.asp,行 764 于是乎.咱们来...
    99+
    2022-06-12
    downplus replace
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作