在Go 1.11发布之后,我一直在尝试通过go.mod在根目录中添加文件来将存储库移至Go模块。
我的一个根库my.host/root的版本为17.0.1,因此我在其go.mod文件中写道:
module my.host/root/v17
Run Code Online (Sandbox Code Playgroud)
我v17.0.1按照Go模块手册中的说明标记了该版本。
当我尝试制作一个使用我的根库的新Go项目时,例如:
package main
import root "my.host/root/v17"
func main() {
root.DoSomething()
}
Run Code Online (Sandbox Code Playgroud)
尝试编译它,出现以下错误:
转到:my.host/root@v0.0.0-20180828034419-6bc78016491a:go.mod在修订版6bc78016491a中具有后v0模块路径“ my.host/root/v17”
我无所适从,弄明白了为什么会这样。我明确地v17.0.1在go.mod文件中添加了文件,但是每次尝试都go build用一个v0.0.0-20180828034419-6bc78016491a版本替换该条目,该版本随后失败,因为在该提交时,我的根库的go.mod文件module条目确实以结束v17,如它应该的那样。
作为记录,此提交与标记的v17.0.1版本相同。
我在这里做错了什么?如何调试这种情况?
我犯了两个错误:
v17.0.0标签将指向一个go.mod不包含v17导入路径后缀的提交。结果,Go工具似乎将整个v17主版本视为v0 / v1,即使以后的v17标签指向具有正确go.mod指令的提交,因此提交ID为“ translation”。go.mod文件中,我错误地指定了require my.host/root v17.0.1而不是require my.host/root/v17 v17.0.1。解决这两个问题后,一切似乎恢复正常,并且工作正常。我希望文档对此有所了解,但是我想这是一个做出贡献的好机会!
小智 5
我得到的错误是: github.com/emicklei/go-restful@v0.0.0-20180531035034-3658237ded10: go.mod has post-v0 module path "github.com/emicklei/go-restful/v2" at revision 3658237ded10
追加 github.com/emicklei/go-restful与v2像这样:github.com/emicklei/go-restful/v2在我的go.mod文件固定对我来说。
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |