从v1.x.x
到v2.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存储库示例,看起来如下:
我可以通过使用+incompatible
导入我的包来解决这个问题,然后创建一个git标记就足够了(不需要创建/v2
)。但是,如果在没有严格要求v2.0.0
的情况下导入包,默认情况下将得到最新的v1.x.x
,这实际上并不是对我来说有问题的最新版本。
我能做什么?
发布于 2021-02-12 21:34:57
当您将版本更新为v2
时,还需要更新引用该版本的import
语句,以便在模块路径上使用/v2
后缀。
如果没有这个后缀,导入将引用原始v1模块中的包。(如果您有意在这两个主要版本之间提供兼容性空间,这可能会很有用。)
有关更多细节,请参见开发主要版本更新。
https://stackoverflow.com/questions/59304846
复制相似问题