修复 go 使用的工具版本

2023-12-13

我希望用 go 创建可重复的构建。 对于个别项目,我们使用 glide。

例如我使用:

glide get github.com/stretchr/testify

修复“testify”包的版本。 然而,这不适用于工具。 例如:

glide install github.com/tebeka/go2xunit

返回成功但并未实际安装 go2xunit 所以我必须使用:

go get github.com/tebeka/go2xunit

哪个安装go2xunit to $GOPATH/bin.

Q 如何修复 go2xunit 等工具的版本?

我还注意到glide 说使用 dep 代替部门说golang 偏离了它的实现并且可能最终会使用基于的东西vgo。 Go 有大量的依赖管理工具,也许其中一个不太知名的工具支持这一点?

如果相关的话,我使用 Debian9 提供的 go 1.7.4。


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)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复 go 使用的工具版本 的相关文章