Go模块替换为本地模块的特定版本
Go modules replace with a specific version of a local module
我有一个 go.mod
文件,如下所示:
module someName
go 1.13
require (
.
.
golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4
localpackage v0.0.0
)
replace localpackage => ../localpackage
正如预期的那样有效!我想不通的是如何向 replace
指令添加特定版本或提交哈希!
例如:
replace localpackage => ../localpackage v1.0.0
或
replace localpackage => ../localpackage v0.0.0-20190731182444-35453ccff3d6
这样做会导致错误:
replacement module directory path "../localpackage" cannot have version
错误很明显,我不应该将版本添加到本地替换。我检查了 wiki 但找不到答案!
问题:
是否可以添加这种 replace
内容以及如何添加?我在这里错过了什么?
如错误所述:当替换指令指向本地文件夹时,您无法指定版本。不能保证也不需要替换文件夹包含版本控制系统的文件,只有 "snaphots" 个 Go 源代码是完全有效的。所以在很多情况下,指定版本是没有意义的。
但是,如果您的本地文件夹是 git 存储库的克隆,您只需将其切换到您想要的版本即可。例如。在该本地文件夹中执行 git checkout v1.0.0
以切换到该版本,将使用该版本。
我有一个 go.mod
文件,如下所示:
module someName
go 1.13
require (
.
.
golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4
localpackage v0.0.0
)
replace localpackage => ../localpackage
正如预期的那样有效!我想不通的是如何向 replace
指令添加特定版本或提交哈希!
例如:
replace localpackage => ../localpackage v1.0.0
或
replace localpackage => ../localpackage v0.0.0-20190731182444-35453ccff3d6
这样做会导致错误:
replacement module directory path "../localpackage" cannot have version
错误很明显,我不应该将版本添加到本地替换。我检查了 wiki 但找不到答案!
问题:
是否可以添加这种 replace
内容以及如何添加?我在这里错过了什么?
如错误所述:当替换指令指向本地文件夹时,您无法指定版本。不能保证也不需要替换文件夹包含版本控制系统的文件,只有 "snaphots" 个 Go 源代码是完全有效的。所以在很多情况下,指定版本是没有意义的。
但是,如果您的本地文件夹是 git 存储库的克隆,您只需将其切换到您想要的版本即可。例如。在该本地文件夹中执行 git checkout v1.0.0
以切换到该版本,将使用该版本。