go1.11使用go模块的解决方案是创建一个假工具包。
你创建一个tools.go文件如下:
// +build tools
package tools
import (
_ "github.com/tebeka/go2xunit"
)
+buildtools 是一个神奇的注释,它会阻止构建包。
>go mod init tools
将创建一个go.mod归档假货tools package
>go install github.com/tebeka/go2xunit
将安装 go2xunit 并更新 go.mod,如下所示。
module tools
require github.com/tebeka/go2xunit v1.4.8 // indirect
现在如果你跑去安装 github.com/tebeka/go2xunit将来(例如,对于干净的构建)其版本将由 go.mod 修复为 v1.4
对于 1.11 之前的 go 版本,使用的工具是retool。
它的工作原理如下:
引导程序:
go get github.com/twitchtv/retool
添加工具:
retool add github.com/jteeuwen/go-bindata/go-bindata origin/master
使用工具:
retool do go-bindata -pkg testdata -o ./testdata/testdata.go ./testdata/data.json
添加对此的支持可能会出现在目标 go 1.12 的路线图中(https://github.com/golang/go/issues/27653)