登录
首页 >  Golang >  Go问答

修复 go 使用的工具的版本

来源:Golang技术栈

时间:2023-03-22 07:56:20 319浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《修复 go 使用的工具的版本》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下golang,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我正在寻找使用 go 创建可重现的构建。对于个别项目,我们使用 glide。

例如,我使用:

glide get github.com/stretchr/testify

修复“作证”包的版本。但是,这不适用于工具。例如:

glide install github.com/tebeka/go2xunit

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

go get github.com/tebeka/go2xunit

它将 go2xunit 安装到 $GOPATH/bin

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

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

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

正确答案

go1.11 使用 go modules 的解决方案是创建一个假的工具包。您创建一个 tools.go 文件,如下所示:

// +build tools

package tools

import (
        _ "github.com/tebeka/go2xunit"
)

+build tools 是一个神奇的注释,可以防止构建包。

>go mod init tools

将为伪造的工具 包创建一个 go.mod 文件 __

>go install github.com/tebeka/go2xunit

将安装 go2xunit 并更新 go.mod 如下。

module tools

require github.com/tebeka/go2xunit v1.4.8 // indirect

现在,如果您将来运行 go install 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 )的路线图上

以上就是《修复 go 使用的工具的版本》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>