从v1.11开始,Go添加了对模块的支持.命令
go mod init <package name>
go build
Run Code Online (Sandbox Code Playgroud)
将生成go.mod并go.sum包含所有发现版本的软件包的依赖文件.
如果模块没有任何版本,则使用该模块的最新提交.如果某个模块确实有发行版,则会选择最新版本作为依赖项.
但是,有时候我需要的功能还没有在已发布的版本中,而是需要在该版本之后进行的提交.如何设置go.mod不指向模块的发布,而是指向模块的存储库中的特定提交?
看起来我可以在go.mod中手动完成
module /my/module
require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)
Run Code Online (Sandbox Code Playgroud)
哪里v0.0.0不对应于上次发布的发布标记,20181121201909将是提交时间戳并且af044c0995fe是提交哈希?是否应该手工找到并输入此类信息,还是有更好的方法?
Eve*_*ton 62
只需"获取"您想要的提交哈希:
go get github.com/someone/some_module@af044c0995fe
Run Code Online (Sandbox Code Playgroud)
'go get'将正确更新依赖文件(go.mod,go.sum).
更多信息:https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies
typ*_*182 48
除了埃弗顿提供的有关获得特定提交的答案外go get github.com/someone/some_module@af044c0995fe,您还可以使用分支名称,例如:
go get github.com/someone/some_module@master go get github.com/someone/some_module@dev_branch这些示例在相应分支上获取最新提交。
它仍然会被记录为一个伪版本在你的go.mod文件,如v0.0.0-20171006230638-a6e239ea1c69。(这有助于根据标准semver排序在所有版本之间提供简单的总排序)。
Ser*_*kov 15
go get your-repo@branch-name
,并添加要添加的 go 模块版本require或replace:
go list -m -json your-repo@branch-name | jq '.|"\(.Path) \(.Version)"'jq您的 PC 上未安装 - 手动组合Path结果Version值:go list -m -json your-repo@branch-nameCha*_*ari 12
一段时间以来,我一直在思考它如何适用于每个人,但我无法运行它。对我来说,我必须提交到 master 分支然后才能够得到它。
要使用特定的分支、提交 ID 或标签,您需要通过运行以下命令为 go 模块启用标志
去 env -w GO111MODULE=on
在此之后,我们将能够做到
go get repo@branchname
go get repo@tag
go get repo@commithash
Run Code Online (Sandbox Code Playgroud)
dim*_*mus 11
如果您想临时替换本地目录的依赖项(例如,如果您同时处理 2 个模块),您可以replace在go.mod文件末尾添加语句:
module example.com/mypkg
go 1.15
require (
gitlab.com/someone/a_package v0.14.2
)
replace gitlab.com/someone/a_package => ../my_forks/a_package
Run Code Online (Sandbox Code Playgroud)
小智 5
此外,如果您在 go.mod 文件中将单词 latest 替换为标签,它将被更改为模块的最新标签。
例如:
module /my/module
require (
...
github.com/someone/some_module latest
...
)
Run Code Online (Sandbox Code Playgroud)
会变成
module /my/module
require (
...
github.com/someone/some_module v2.0.39
...
)
Run Code Online (Sandbox Code Playgroud)
跑完后 go mod tidy
| 归档时间: |
|
| 查看次数: |
25614 次 |
| 最近记录: |