首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不复制子包代码的情况下将主要版本切换到v2,并在默认情况下获得最新版本?

如何在不复制子包代码的情况下将主要版本切换到v2,并在默认情况下获得最新版本?
EN

Stack Overflow用户
提问于 2019-12-12 12:41:38
回答 1查看 595关注 0票数 3

v1.x.xv2.0.0,我很难选择主要的版本。

我创建了一个新的git标记v2.0.0和一个新的子文件夹/v2/,将go.mod文件放入其中并相应地更改了模块名。

我的模块包含几个子包,现在我无法导入它们--即使是那些没有对它们进行更改的子包。

例如,我不能导入/v2/mypkg/ -我得到了module found but does not contain package错误。如前所述,此文件夹仅包含go.mod文件。我想不出--如果没有对mypkg做任何修改--如果我需要再复制一份(?!),以便在mypkg/v2/mypkg/中都存在相同的代码。

我试图在网上寻找常见的Go存储库示例,看起来如下:

  • 所有使用go-mod的repos都低于v2。
  • 高于v2的Repos与go-mod不完全兼容。

我可以通过使用+incompatible导入我的包来解决这个问题,然后创建一个git标记就足够了(不需要创建/v2)。但是,如果在没有严格要求v2.0.0的情况下导入包,默认情况下将得到最新的v1.x.x,这实际上并不是对我来说有问题的最新版本。

我能做什么?

EN

回答 1

Stack Overflow用户

发布于 2021-02-12 21:34:57

当您将版本更新为v2时,还需要更新引用该版本的import语句,以便在模块路径上使用/v2后缀。

如果没有这个后缀,导入将引用原始v1模块中的包。(如果您有意在这两个主要版本之间提供兼容性空间,这可能会很有用。)

有关更多细节,请参见开发主要版本更新

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59304846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档