问题标签 [go-modules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
435 浏览

go - go模块没有正确下载动态库的cgo软链接

环境为ubuntu 16.04 64bit,go版本go1.12 linux/amd64

我正在尝试将我的 golang 项目从 gopath 切换到 gomodule。我的项目导入的其中一个包是使用cgo调用ffmpeg,包中有几个动态ffmpeg库,例如libavcodec.so、libavcodec.so.57、libavcodec.so.57.1​​07.100,前两个文件是软链接文件问题是当我去构建我的golang项目时,go模块只下载libavcodec.so.57.1​​07.100,它没有下载两个软链接文件

我尝试去获取包,并成功获取了包括软链接文件在内的所有库

我希望 go module 下载所有 c 动态库文件,包括软链接文件,但我没有得到软链接文件


更新:我在 github 上提交了一个问题,似乎这是故意的,请参阅问题 #32050

0 投票
1 回答
39 浏览

go - 为什么代码中有些包以v2为前缀,而我克隆的文件路径却没有v2?

GitHub:https ://github.com/filebrowser/filebrowser

看了这个项目的源码,发现main.go依赖于cmd包。发现import语句中的路径包含v2,但是我从github克隆项目后文件路径中没有v2?为什么会这样?

本项目的结构

0 投票
2 回答
5030 浏览

google-app-engine - `go build -mod vendor` 无法使用 vendored 包

将我的 Go 服务部署到 Google AppEngine(标准)时,我收到一个错误,描述未找到模块版本,而一切编译正常。

这些模块位于私有 Github 实例上,并签出到vendor/.

Ago build -mod vendor -o /dev/null ./...适用于 cloud-build-local、本地和 Google Cloud Build。github.com/company/gosystem 上有一个名为“v1.1.0”的标签:

Agrep -RI 'gosystem@' *什么也没报告。

0 投票
1 回答
114 浏览

go - go 如何知道从哪里获取包裹

当我在 go 应用程序中导入包时(使用带有 golang 插件的模块和 vscode):

go 自动检索包。go 怎么知道从哪里得到它?我认为它只是从 github.com 中提取源代码,但该项目的存储库名称中https://github.com/goadesign/goa没有.。如果我将导入更改为:

它检索v3包。我很乐意使用 RTFM,但不确定我需要阅读哪个 FM。

顺便说一句:这是我的第二天,go所以这对我来说很神奇。

0 投票
1 回答
5957 浏览

go - 使用 Go 模块时如何获取依赖项的主分支

我正在为一个项目使用 Go-modules。当我检索包的依赖项时,它会检索旧版本。如何在 master 分支中获取代码?

0 投票
1 回答
321 浏览

go - 更新时锁定特定分支的 go 模块

Dep 有一个非常有用的选项 - 通过约束锁定给定的分支包。您只需为包指定一个分支并dep ensure -update仅在选定的分支内更新此包。

在 go 模块中,我必须手动输入 go get -u package@branch ,如果我想通过它更新我的所有模块,go get -u它将更改branchpackage带有最近提交的分支(如果有的话)。

是否有可能具有类似 dep 的行为或自动化此工作流程?

0 投票
1 回答
244 浏览

go - 使用模块时如何让 Travis 更快地构建

我们在一个项目中使用 go modules 和 travis。每次 Travis 构建项目时,go modules 都会获取所有依赖项,这会增加构建时间。有什么方法可以减少时间或避免每次都获取 deps 吗?

0 投票
1 回答
508 浏览

go - 使用 /cmd 结构构建 Go 项目时出错(多个入口点)

这是我的项目的目录结构(~/go/src/bitbucket.org/a/b):

我需要编译 2 个二进制文件(cmd/ 中的每个模块一个)。

我尝试GO111MODULE=on go build ./cmd/c从项目根目录(~/go/src/bitbucket.org/a/b)运行。它默默地结束,什么也不做。

我也试过跑步GO111MODULE=on go build -o test ./cmd/c。它创建了 29kb 的test文件。当我为其添加执行权限并运行时,它以错误结束:

我尝试过使用 go 1.12.5 和 go 1.11.10。此外,当我将main.go任何 cmd 目录中的文件放入项目根目录并构建时,编译器会很好地构建它(二进制文件大小约为 33mb)。

是否可以在单个项目中使用 2 个编译器入口点?

0 投票
2 回答
687 浏览

go - 使用 go 模块将 retool 替换为 tools.go 用于多开发人员和 CI 环境

我想用 go modules tools.go “工具作为依赖项”替换retool 。但是,当我的开发人员和 CI env 都使用不同的操作系统时,我很难理解这是如何工作的。

我想确保每个环境都使用完全相同版本的工具。

举个具体的例子,我的应用需要 protoc 编译器通过 github.com/golang/protobuf/protoc-gen-go 生成 go 代码。我有 3 个操作系统,都需要使用 protoc-gen-go 插件/生成器执行 protoc:

  1. 瑞恩:使用 MacOS
  2. 乔:Linux(Ubuntu)
  3. CI:Linux(CentOS)

我目前使用 retool 来确保所有环境都锁定在相同版本的工具上(本例中的 protoc-gen-go):

我的新 go 模块/“作为依赖项的工具”设置

工具.go:

设置将使用的路径go install

安装:

如果 Ryan 运行go install ..MacOSbin/protoc-gen-go可执行文件,则会创建。

问题

  1. 此时,为什么protoc-gen-gogo.mod 中没有列出工具版本(或 git hash)?
  2. 当 Joe 克隆应用程序存储库时,他如何获取和编译 Ryan 使用的相同版本的 protoc-gen-go?
  3. 如何protoc知道protoc-gen-go在我的目录中使用可执行生成器./bin
0 投票
1 回答
445 浏览

git - 如何使用语义版本构建 Go Module?

以下是使用 git repo 设置新的最小 Go 模块项目、提交并使用带注释的语义版本标记对其进行标记的 bash 步骤:

快速验证它的标记是否正确:

构建并运行:

这会产生:

我希望看到我标记存储库的语义版本。相反,我得到了虚拟占位符版本。怎么了?