Git Go模块将显式版本替换为v0.0.0-<;时间戳>-&书信电报;修订>;在go.mod中
我最近在我的Go项目中添加了一个功能,这可能会破坏其他使用它的项目。我决定添加一个匹配的git标记Git Go模块将显式版本替换为v0.0.0-<;时间戳>-&书信电报;修订>;在go.mod中,git,go,gitlab,versioning,go-modules,Git,Go,Gitlab,Versioning,Go Modules,我最近在我的Go项目中添加了一个功能,这可能会破坏其他使用它的项目。我决定添加一个匹配的git标记2.0.0(以前是1.x.x),将一个主要版本添加到这个项目“a”。 在另一个需要它的项目“B”中,我更新了它的go.mod文件,如下所示: module gitlab.mydomain.com/namespace/B 加油1.12 要求( gitlab.mydomain.com/namespace/A v2.0.0 ) 如您所见,我特别提到了v2.0.0,但一旦我运行B,A的版本将被v0.0.0
2.0.0
(以前是1.x.x
),将一个主要版本添加到这个项目“a”。
在另一个需要它的项目“B”中,我更新了它的go.mod
文件,如下所示:
module gitlab.mydomain.com/namespace/B
加油1.12
要求(
gitlab.mydomain.com/namespace/A v2.0.0
)
如您所见,我特别提到了v2.0.0
,但一旦我运行B,A的版本将被v0.0.0--
覆盖
我确保该标签存在于遥控器中
我这里缺少什么?从主版本
2
(v2
及更高版本)开始,您必须修改导入路径,必须将主版本作为后缀添加到导入路径。您必须将包导入为:
import "gitlab.mydomain.com/namespace/A/v2"
这也必须出现在go.mod
中,如:
require gitlab.mydomain.com/namespace/A/v2 v2.0.0
由于主要版本表示Semver中不兼容的更改,它们的导入路径也必须不同(相同的导入路径表示相同的依赖关系)。这是:
如果旧包和新包具有相同的导入路径,新包必须与旧包向后兼容 阅读更多关于它的文章
同样在博客帖子中:从主版本
2
(v2
及更高版本)开始,您必须修改导入路径,您必须将主版本作为后缀添加到导入路径中。您必须将包导入为:
import "gitlab.mydomain.com/namespace/A/v2"
这也必须出现在go.mod
中,如:
require gitlab.mydomain.com/namespace/A/v2 v2.0.0
由于主要版本表示Semver中不兼容的更改,它们的导入路径也必须不同(相同的导入路径表示相同的依赖关系)。这是:
如果旧包和新包具有相同的导入路径,新包必须与旧包向后兼容 阅读更多关于它的文章
也在博客帖子中:我开始阅读v2文档-是否真的需要在
/v2/
中制作整个项目的额外副本@Kludge:不需要,它只需要模块名称和导入路径中的/v2
。@Kludge和您导入的包(模块)一起工作有一个go.mod
文件吗?@Kludge如果你能向我们展示你的具体回购协议,那会很有帮助,这样我们就不必问/猜所有的事情了。@Kludge看到我开始阅读v2文档-真的需要在/v2/
中制作整个项目的额外副本吗@Kludge:不需要,它只需要模块名称和导入路径中的/v2
。@Kludge那么您导入的包(模块)是否有go.mod
文件?@Kludge如果您能向我们展示您的具体报告,那将非常有帮助,这样我们就不必问/猜所有的事情了。@Kludge See