首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何提供go本地包版本号以在`go.mod`文件中提及

在Go语言中,可以通过在go.mod文件中指定本地包的版本号来引用该包。以下是如何提供go本地包版本号以在go.mod文件中引用的步骤:

  1. 首先,在你的项目目录下创建一个新的文件夹,用于存放你的本地包。假设该文件夹名为mylocalpkg
  2. mylocalpkg文件夹中创建一个go.mod文件,用于管理本地包的版本。可以使用以下命令初始化go.mod文件:
  3. mylocalpkg文件夹中创建一个go.mod文件,用于管理本地包的版本。可以使用以下命令初始化go.mod文件:
  4. mylocalpkg文件夹中编写你的本地包代码,并确保代码可以正常运行。
  5. 在你的主项目中的go.mod文件中,使用以下语法引用本地包:
  6. 在你的主项目中的go.mod文件中,使用以下语法引用本地包:
    • require mylocalpkg v0.1.0 表示你的项目依赖于mylocalpkg包的版本v0.1.0
    • replace mylocalpkg => ./path/to/mylocalpkg 表示将mylocalpkg替换为本地路径./path/to/mylocalpkg,其中./path/to/mylocalpkg是你的本地包的实际路径。
  • 运行以下命令,以确保你的主项目使用了正确的本地包版本:
  • 运行以下命令,以确保你的主项目使用了正确的本地包版本:
  • 这将根据go.mod文件中的依赖关系更新你的项目的go.sum文件和go.mod文件。

通过以上步骤,你就可以在go.mod文件中提及并引用你的本地包了。请注意,这种方法仅适用于本地开发和测试,如果你的项目需要在其他环境中部署和运行,你可能需要考虑使用其他方式来管理包的依赖关系。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Go modules基础精进,六大核心概念全解析(下)

但是你可以指定 -mod=mod 来使 go 命令尝试下载本地找不到的,并且更新 go.modgo.sum。go get 和 go mod tidy 这两个命令会自动的做这些工作。...命令会将这个依赖模块的路径和对应版本添加到主模块的 go.mod 文件。...如果解析的代码没有被主模块直接引用, go.mod 文件添加的新依赖后会有 // indirect 注释。...go 命令也提供了几个子命令来帮组开发者修改 go.mod 文件。举个例子,go get 命令可以需要的时候更新 go.mod 文件go mod edit 命令可以对文件做一些底层的修改操作。...《Go modules基础精进,六大核心概念全解析》一文全面介绍了 Go Modules 的模块、模块路径、路径、如何通过路径寻找模块路径,还介绍了版本号和伪版本号,最后简单介绍了 go.mod

69170

Go Module Notes

module 是包含了 Go文件的目录树,并在根目录添加了名为 go.mod文件go.mod 包含模块导入名称,声明了要求的依赖项,排除的依赖项和替换的依赖项。...go module import 在你的代码 import 了一个,但 go.mod 文件里面又没有指定这个的时候,go 命令行工具会自动寻找包含这个代码的模块的“最新”版本,并添加到 go.mod...因为被 replace 的首先需要被 require,所以my-mod/go.mod我们需要先指定依赖的,即使它并不存在。...,简单来说一个是顶层依赖还是间接依赖,取决于它在本module是否被直接import,而不是go.mod文件是否包含// indirect注释。...如果你发布的模块不包含此文件,使用者构建时会报错,同时还可能出现安全风险(go.sum提供了安全性的校验)。

1.4K10
  • Go Modules基础精进,六大核心概念全解析(下)

    如果没有发现模块能提供这个或者发现两个及两个以上的模块提供了这个,那么go命令会提示报错。但是你可以指定-mod=mod来使go命令尝试下载本地找不到的,并且更新go.modgo.sum。...命令会将这个依赖模块的路径和对应版本添加到主模块的go.mod文件。...如果解析的代码没有被主模块直接引用,go.mod文件添加的新依赖后会有//indirect注释。...go命令也提供了几个子命令来帮组开发者修改go.mod文件。举个例子,go get命令可以需要的时候更新go.mod文件go mod edit命令可以对文件做一些底层的修改操作。...《Go Modules基础精进,六大核心概念全解析(上)》一文全面介绍了Go Modules的模块、模块路径、路径、如何通过路径寻找模块路径,还介绍了版本号和伪版本号,最后简单介绍了go.mod

    37530

    Go modules基础精进,六大核心概念全解析(下)

    但是你可以指定 -mod=mod 来使 go 命令尝试下载本地找不到的,并且更新 go.modgo.sum。go get 和 go mod tidy 这两个命令会自动的做这些工作。...命令会将这个依赖模块的路径和对应版本添加到主模块的 go.mod 文件。...如果解析的代码没有被主模块直接引用, go.mod 文件添加的新依赖后会有 // indirect 注释。...go 命令也提供了几个子命令来帮组开发者修改 go.mod 文件。举个例子,go get 命令可以需要的时候更新 go.mod 文件go mod edit 命令可以对文件做一些底层的修改操作。...《Go modules基础精进,六大核心概念全解析》一文全面介绍了 Go Modules 的模块、模块路径、路径、如何通过路径寻找模块路径,还介绍了版本号和伪版本号,最后简单介绍了 go.mod

    472100

    GO依赖管理,看这篇就够了

    go.mod 类似java的maven将依赖声明.pom文件中一样,golang将依赖声明go.mod,下面是一个典型的go.mod文件组成: module github.com/xx/test...如上面的例子,v0.3.1表示该依赖版本整体,而v0.3.1/go.mod表示该依赖版本go.mod文件。...依赖版本任何一个文件(包括go.mod)改动,都会改变其整体哈希值,此处再额外记录依赖版本的go.mod文件主要用于计算依赖树时不必下载完整的依赖版本,只根据go.mod即可计算依赖树。...go.sum 文件怎么用 当构建项目时,Go 会先从本地缓存获取依赖,然后计算本地依赖的哈希值,和 go.sum 的哈希值对比,如果不一致,就会拒绝构建。...因为有可能本地缓存的包被篡改,也有可能时go.sum文件的值被篡改,不过Go更倾向于相信 go.sum 文件的哈希值,因为第一次写入的时候是经过校验的。

    45420

    Go的包管理学习笔记

    项目内会生成一个go.mod文件,列出包依赖。所有来的第三方会准确的指定版本号对于已经转移的,可以用replace 申明替换,不需要改代码。...on:go命令行会使用modules,而一点也不会去GOPATH目录下查找。auto: 默认值,当项目$GOPATH/src外,且项目根目录有go.mod文件时,开启模块支持。...其中提供了以下几个命令,一般我用的比较多的是go mod tidydownloaddownload modules to local cache(下载依赖)editedit go.mod from tools...,go命令使用go.sum文件确保这些模块的未来下载检索与第一次下载相同的位,确保项目所依赖的模块不会出现意外更改,无论是出于恶意、意外还是其他原因。.../R比如etcd v3.3.x的版本错误的使用了github.com/coreos/bbolt作为bbolt的module path,其实这个库它自己的go.mod声明的module path是go.etcd.io

    95840

    搞清楚 Go Mod的版本和伪版本,下次别乱用了

    项目使用GoModules管理依赖的方法和经验总结 Go Modules怎么管理私有依赖 今天再跟大家唠一下 Go Module 软件的版本和伪版本的内容,因为这是一个理想很丰满、现实很骨感的故事。...Module 的版本 关于 Go Module 依赖的软件版本,这块知识就很中规中矩啦,大部分资料里也都有提及。...gomod 的伪版本规则 关于模块的伪版本,虽然我们掌握了它的生成规则,但使用的时候一定不要自己 go.mod 文件里去编辑,而是使用上面举例的go get 命令,让 Go Module 自己生成模块的伪版本...-pre 等模块测试通过,就可以软件的master分支打出v1.2.30标签,将引用模块的项目中go.mod文件里的依赖声明,更改成正式版本即可。...不过实际我看下来,更多的是使用伪版本的居多,而且很多线上项目 go.mod 文件里直接就是引用的这些伪版本的模块。

    79030

    Go基础系列 | 4. 环境搭建(补充) - gomod疑惑

    GO111MODULE 环境变量其实有三个值可以设置,具体如下: on:强制启用gomod管理第三方,因此项目目录下必须包含 go.mod 文件。...auto:如果当前项目下有 go.mod 文件,就采用 on 的形式,不存在采用 off 的形式。 注:实际开发建议设置为on 常见命令 1....初始化 初始化命令,会在当前目录下生成 go.mod 文件一个项目中,此文件只需要一份,放置项目根目录。...自动更新 自动下载当前项目所依赖的第三方,会自动生成 go.sum 文件,该文件包含当前项目所依赖的第三方所依赖的所有具体版本。如果项目中删除了某个依赖,也会从 go.mod 文件删除。...总结 对于以上知识,我觉得实际开发够用了,如果你遇到了我文中没有提及到的问题,但不知道如何解决,就在下方留言! qrcode_for_gh_d26aebc88e25_258.jpg

    1.1K30

    深入理解 Go Modules 的 go.modgo.sum

    它为工程独立的管理自己所依赖第三方提供了保证,多个工程独立地管理自己的第三方依赖,它们之间不会相互影响。...但 vendor 也有缺点,那就是对外部依赖的第三方的版本管理。 我们通常使用 go get -u 更新第三方。默认的是将工程的默认分支的最新版本拉取到本地,但并不能指定第三方的版本。...Go modules 就是一个统一打版和发布的 package 的集合,项目根文件下有 go.mod 文件定义 module path 和依赖库的版本,还有一个 go.sum 的文件,该文件包含特定依赖的版本内容的散列哈希值...会放在 module 的主文件夹下,一般 go.mod 命名。...version 是依赖的版本号。如果 version 后面跟/go.mod表示对哈希值是 module 的 go.mod 文件;否则,哈希值是 module 的.zip文件

    12.8K64

    Go基础系列:3. 环境搭建疑惑 - gomod学习

    GO111MODULE 环境变量其实有三个值可以设置,具体如下: on:强制启用gomod管理第三方,因此项目目录下必须包含 go.mod 文件。...auto:如果当前项目下有 go.mod 文件,就采用 on 的形式,不存在采用 off 的形式。 注:实际开发建议设置为on 常见命令 1....初始化 初始化命令,会在当前目录下生成 go.mod 文件一个项目中,此文件只需要一份,放置项目根目录。...自动更新 自动下载当前项目所依赖的第三方,会自动生成 go.sum 文件,该文件包含当前项目所依赖的第三方所依赖的所有具体版本。如果项目中删除了某个依赖,也会从 go.mod 文件删除。...总结 对于以上知识,我觉得实际开发够用了,如果你遇到了我文中没有提及到的问题,但不知道如何解决,就在下方留言!

    41630

    包管理

    实践 5.1 创建一个 Go Modules 项目 5.2 本地依赖管理 5.3 如何发布我们的模块呢?...$ go mod tidy [-v] 确保 go.mod 与 源代码匹配,会添加当前编译过程或者其他依赖所缺少的模块,会删除没有提供任何无用的模块,还会添加一些缺失的校验信息到 go.sum,移除无用的校验信息...Modules 没有出来之前,项目中 import 本地其他都是通过设置好 GOPATH,将项目路径加入到 GOPATH环境变量,然后将我们的放入 $GOPATH/src 下,这样我们就可以找到本地依赖...如何Go Modules 去实现本地依赖呢?...# 确保 go.sum 和 go.mod 文件都一起提交到该版本go.sum 不是类似 nodejs 的 package-local.json 锁文件,更多地它可以帮助校验本地下载地模块是否被篡改

    1.7K11

    Go Modules知识点总结

    知识点 GO111MODULE环境变量 这个环境变量是Go Modules的开关,主要有以下参数: auto:只项目包含了go.mod文件时启动go modules,Go1.13版本是默认值 on.../go-spew v1.1.0 // indirect 以下场景才会添加indirect注释: 当前项目依赖A,但是A依赖B,但是A的go.mod文件缺失B,所以在当前项目go.mod补充B并添加...indirect注释 当前项目依赖A,但是依赖A没有go.mod文件,所以在当前项目go.mod补充B并添加indirect注释 当前项目依赖A,依赖A又依赖B,当依赖A降级不在依赖B时,...,不影响引用; 版本号 go module拉取依赖本质也是go get行为,go get主要提供了以下命令: 命令 作用 go get 拉取依赖,会进行指定性拉取(更新),并不会更新所依赖的其它模块。...因为是项目的go.mod文件直接修改的,如果误传到远程仓库,会影响到其他开发同学; 场景2:我们本地开发了一些依赖库,这时想在本地测试一下,还未发到远程仓库,那么我们在其他项目中引入该依赖库后,执行

    78420

    Go版本依赖--版本选择机制

    版本选择机制 使用go get 来获取某个依赖,如果没有特别指定依赖的版本号go get会自动选择一个最优版本,并且如果本地go.mod文件的话,还会自动更新go.mod文件....函数为例,如果需要修改函数的入参,可以增加新的函数而不是直接修改原有的函数。 如果确实需要做一些打破兼容性的修改,建议创建新的。...版本选择机制 Go 的多个命令行工具都有自动选择依赖版本的能力,如go build 和go test,当在源代码增加了新的import,这些命令将会自动选择一个最优的版本,并更新go.mod文件。...需要特别说明的是,如果go.mod文件已标记了某个依赖版本号,则这些命令不会主动更新go.mod版本号。所谓自动更新版本号go.mod缺失某些依赖或者依赖不匹配时才会发生。...3.2 最小版本选择 有时记录在go.mod文件的依赖版本会随着引入其他依赖而发生变化。

    1.3K50

    go modules:使用 mod 管理项目依赖,通过vendor实现一键分发编译

    依靠go语言最新的mod模块,可以将依赖的不同版本都缓存至$GOPATH/pkg/mod目录下,各个项目通过go.mod文件各取合适的依赖版本使用。...go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形: 当前目录在GOPATH/src之外且该目录包含go.mod文件 当前文件包含go.mod文件的目录下面。...如何更换版本?...关于marwan-at-work/mod 有一个相关的工具包在这个地方: github.com/marwan-at-work 有教程介绍它可以帮助我们管理依赖,结束go.mod文件提供自动升级、降低版本的功能...不要用它代替go mod,管理依赖直接使用go mod指令即可。这个依赖安装后,$GOPATH/bin目录下会有一mod二进制文件。执行mod与官方指令go mod并不是一回事。

    6.3K21

    GoLang 新版包管理 -- go module 的使用

    一个模块包含一个或多个 一个包包含该目录下的所有 go 源码文件 2.2. go.mod 正如上面所说,go.mod 文件go module 模式的关键,他定义了模块的依赖关系。...v2 时,这个模块的引用路径末尾必须加上 vN 3.3. v2 以上版本引入路径的变化 关于第三点,下面是不同场景下引入路径的变化: go.mod 文件: module github.com...手动添加 你可以参考上文, go.mod 手动添加依赖的模块。...通过下面的命令,可以将 go.mod 声明的包下载到本地go mod download 5.2.2. go get 获取 也可以通过执行 go get 命令获取依赖: go get github.com...依赖整理 在编写代码的过程,往往会在 go.mod 文件添加过多的依赖,golang 也提供了相应工具来整理依赖,增加丢失的依赖,删除无用依赖: go mod tidy 5.4.

    2.2K30

    Go编程之相关命令工具记录

    (`对于本地 fork 的特别有用`) * -fix 获取源码之后先运行 fix,然后再去做其他的事情 * -t 同时也下载需要为运行测试所需要的 * -u 下载丢失的,但不会更新已经存在的...mod 命令 go mod download # 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录) go mod edit # 编辑go.mod文件...latest 我们可以go.mod 文件替换(replace)指定的镜像源: 国内访问golang.org/x的各个都需要FQ, 此时你可以go.mod中使用replace替换成github...@version 将会升级到指定的版本号version 依赖整理 描述: 代码删除不使用的依赖代码后,相关的依赖库并不会在go.mod文件自动移除,此种情况下我们可以使用go mod tidy命令更新...手动编辑go.mod文件的require依赖项或执行go tidy自动发现、维护依赖。

    59030

    一文读懂Go Modules原理

    可以看到上述go.mod文件,没有出现F1.1以及G1.1,这是因为F1.1存在于C1.3的go.mod文件,而G1.1存在于F1.1的go.mod文件,因此没有必要将这两个模块填写到A1的go.mod...文件; 而D1.4和E1.3后面添加了indirect标记,这是因为D1.4和E1.3都不会出现在B1.2,C1.3以及它们的依赖模块对应的go.mod文件,因此必须添加到模块A1的需求列表(go...: replace:将依赖模块修改成本地依赖地址,这样就可以本地修改依赖的同时进行编译调试了(需要注意go.mod文件内容发生修改,注意不要提交):replace k8s.io/client-go...因此可以将本地开发的依赖放置vendor目录,并将vendor通过.gitignore文件设置版本控制之外,这样既可以满足本地调试,同时也不影响版本提交 当需要列举本项目所有依赖模块时(包括间接依赖...:强制开启Go Modules(建议) auto:如果当前模块$GOPATH/src,则不使用Go Modules;如果该模块不存在$GOPATH/src下,且拥有go.mod文件则使用Go Modules

    2.9K31

    Go语言中的包管理和模块化

    移除依赖手动删除go.modgo.sum文件的依赖条目,然后运行go mod tidy命令:go mod tidy和模块管理的最佳实践1....最小依赖原则尽量减少依赖的数量,避免引入不必要的依赖,保持代码简洁。4. 使用replace和exclude开发过程,可以使用replace和exclude指令来替换或排除特定版本的依赖。...示例代码假设有一个本地开发的模块需要替换掉远程仓库的模块,可以go.mod文件中使用replace指令:module myprojectgo 1.18require ( github.com...go.mod├── log_linux.go├── log_windows.go└── main.goLinux平台实现在log_linux.go文件编写Linux平台的日志实现:// +build....")}模块重命名用于本地调试开发过程,需要在本地路径调试库。

    15210
    领券