我们有一些用Go编写的内部命令行工具,我们使用vendor文件夹来控制它们的依赖关系。
但是,如果使用Go 1.4或更低版本(或没有供应商实验标记的1.5)使用go get
更新工具,根据我的理解,依赖关系将被单独拉入gopath。
有没有办法要求最低版本的go编译器来编译包,所以我们有一种硬性和快速的方法来确保每个人都有我们期望的最低版本?
答案 0 :(得分:3)
我们这样做in rclone
像这样的构建约束。所有go编译器版本> = 1.5将设置go1.5
构建约束,因此不会使用编译器构建< 1.5并将使用编译器> = 1.5进行构建。
//+build !go1.5
package main
// Upgrade to Go version 1.5 to compile rclone.
func init() { Go_version_1_5_required_for_compilation() }