10分钟将你的Go工程转换为Go Module模式( 二 )


1. etcd使用了诸如golint、gosimple、staticcheck、ineffassign等静态分析工具 , 但其中一些工具没有模块意识 , 无法识别模块路径 , 而无法通过必要的检查 。在etcd的这种场景下 , etcd-io/etcd下并没有v3文件夹 , 但是Import导入(或模块路径)包含v3 , 如etcd-io/etcd/v3 。其他工具是模块感知的 , 但必须在新版本的Go 12中可用 。如果构建系统在11之上 , 那么它们也需要迁移到12 。
2. 如果使用了protobuf之类的代码生成器 。更新.proto文件 , 以便使用正确版本的导入生成代码 。
步骤五 : 加入GoCenter在构建过程中 , 您可能会注意到许多go get命令在etcd的不同阶段执行 。
为了加快GoLang应用程序的构建时间 , 并确保etcd ppipeline中使用的Go Module版本的不可变性和可用性 , 使用GoCenter来构建etcd
只需设置GOPROXY=https://gocenter.io 。(详细原理可看上文的Go Proxy 原理图)
总结正如您所看到的 , 将Go项目转换为使用Go Module方式非常简单 , 但是有一些细节可能会减慢您的速度 。通过选择这个具有丰富场景的项目来演示这个过程 , 我们相信我们达到了大多数需要处理的场景 , 为您提供了一个很好的示例 , 覆盖了您可能面临的情况 。




推荐阅读