问题标签 [go-get]
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.
go - git credential.helper 而不是 .netrc 来获取依赖项
为了兑现go依赖项,我使用连接到专用网络之外的服务器(因为无法直接从 获取依赖项)的nexus(作为goproxy )。goproxy
nexus
GitHub
nexus.some.repo.com:4443/repository/go-nexus-proxy ➡️gonexus.dev nexus.some.repo.com:4443/repository/go-proxy ➡️proxy.golang.org ...
我使用.netrc
文件连接到nexus
我可以用git credential.helper
代替.netrc
❓</p>
如果是我该 如何配置git credential.helper
❓</p>
go - Golang 子项目或子模块依赖
Golang 中推荐的下载依赖项子模块的方法是什么?我认为我的问题可以用例子来最好地描述。
示例 #1:
我有一个客户端和一个服务器。我的服务器是一个 API,并且有许多其他依赖项,例如数据库、消息队列、consul 等。我希望我的客户端是一个轻量级的包,用户只需下载客户端所需的少量依赖项。
您可以说客户端和服务器可以位于不同的存储库中。但是,它们之间也可能有一些通用代码,如果我们遵循这种模式,它们将再次成为另一个存储库。
我正在考虑一些看起来像这样的结构:
示例 #2:
项目共享模型是很常见的。如果我们有通过具有通用模型的消息代理进行通信的微服务,我们可能需要这样的结构。
与其他语言的比较
我来自 Scala/Java 背景,不到一个月就开始使用 Golang。与 Scala 相比,我可以通过两种方式处理这个问题。让我们以示例#2为例
- 将模型发布为自己的 jar 并
model.jar
在每个服务中导入 - 在 sbt 中使用多项目设置:https ://www.scala-sbt.org/1.x/docs/Multi-Project.html 。
我在 Go 中探索的一些东西
- https://blog.gopheracademy.com/advent-2015/vendor-folder/
- https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories
但到目前为止,他们似乎没有解决我的问题
最后的问题
在 Golang 中解决我在示例中陈述的问题的推荐方法是什么?
谢谢您的帮助!
go - 去获取不从 BitBucket 下载存储库下的模块
在 bitbucket.org 中有一个 git repo
模块目录是 git 存储库的子目录。存储库用 标记v0.0.1
。
这是 go.mod
当我go get
为这个模块做时,我收到以下错误
如果我使用网络浏览器查看,我可以在标签下看到integration-common/util/
bitbucket.org 中的目录。v0.0.1
go.mod 的内容如上所示。
更奇怪的是, go get 确实设法下载了存储库中的其他目录(integration1/
和integration2/
)。出于某种原因,它认为v0.0.1
不包含该integration-common/
目录,即使 bitbucket 在那里为该标签显示它。
我使用 ssh 而不是 https 下载,因为 https 在我们的 bitbucket 存储库中需要 2fa:
〜/ .gitconfig:
我知道在使用 go get 时 bitbucket 很奇怪。我错过了什么,或者这是 go get 和 bitbucket 的错误?
git - go get 不适用于引用自定义 gitconfig 的 .gitconfig
我克隆了一个存储库,git clone
该存储库依赖于另一个私有存储库。在当前 repo 中,我尝试使用go get
该依赖项 ( go get -u ./...
),但它引发了一个错误:
致命:无法读取“https://bitbucket.org”的用户名:终端提示已禁用
信息
- 我曾经
git clone git@my-name.bitbucket.org:company/repo.git
将 repo 克隆到~/Desktop/BitBucket/Company
目录。 - 我有
GOPRIVATE="bitbucket.org/company/*"
- 没有
includeIf
. 如果我用公司 .gitconfig 替换 .gitconfig它工作正常。但是我需要管理多个帐户... - 该命令
git config --get user.name
(在 repo 内)返回My Name
. 所以有一个问题go get
我的主要 .gitconfig文件(在 $HOME 目录中):
我的.gitconfig文件(用于公司回购 $HOME/.git/BitBucket/Company/.gitconfig):
我的ssh 配置文件($HOME/.ssh/config):
我的错误是什么?
我还发现了这篇文章:https ://medium.com/easyread/today-i-learned-fix-go-get-private-repository-return-error-terminal-prompts-disabled-8c5549d89045 。您可以查看第一条评论:
仅供参考,这在使用引用自定义 .gitconfig-custom 的 .gitconfig 时不起作用。它必须存在于 ~/.gitconfig.... 令人沮丧的人。
我试图将公司 .gitconfig移动到主目录(+ 将其重命名为 .gitconfig-company)。没有任何效果。
go - main.go 找不到包
实际上我想用它c4
来生成c4 id
视频文件,所以我找到了下面repo
是为做这件事而开发的,所以我克隆了这个repo
https://github.com/Avalanche-io/c4/tree/v0.7.0
现在正如堆栈溢出的答案中所建议的那样:无法从 github 安装 cmd 版本的 c4
我在ubuntu
终端中执行以下命令
然后正如他们在如何使用它的示例中所示repo
我只是复制了这个相同的示例并创建了一个main.go
文件,当我运行他们在README.md
https://github.com/Avalanche-io/c4/blob/v0.7.0/id/README.md中定义的
这个命令时是go run main.go ```` Instead of getting the
文件的 c4 id```,如他们在示例中所示。我收到以下错误
我不懂go
语言,所以在这里解决问题对我来说变得非常困难,有没有go
开发人员可以帮助我。
git - 如何指定将使用哪个 ssh 密钥 `go get`
我在同一台笔记本电脑(运行 Ubuntu 版本 20)上使用两个不同的 github 帐户(个人和工作)。我需要能够使用我的工作 github 帐户的 ssh 密钥从工作中访问私人存储库。
我已经使用一些简洁的 git config 控件完成了所有工作,即在我的~/.gitconfig
文件中我放了:
个人配置包含:
工作配置包含:
这一切都适用于从 github 拉取和推送(并使用 gpg 密钥签署工作提交),但它go get
在私人仓库中失败。出于某种奇怪的原因go get
,试图使用我的个人 ssh 密钥 ( ~/.ssh/id_rsa
) 而不是我的工作 ssh 密钥 ( ~/.ssh/id_ecdsa
)。我已经设置了GOPRIVATE
环境变量,即
go get 的输出如下:
我可以看到我的 ssh 代理有两个键:
当我删除我的个人 ssh 密钥(即rm ~/.ssh/id_rsa*
)然后go get
在私人仓库上工作得很好,所以我知道它肯定只是试图使用错误的 ssh 密钥。由于某种原因,它忽略了 git config core.sshCommand
。
go - 为什么我尝试下载 go 包时不断收到此消息?
如何下载软件包?我相信它正在尝试检查我的计算机上缓存的内容,但我不知道如何先下载它。
go - 使用所需模块的旧版本编译 go 源代码
我试图构建一个go
需要的源代码,go-systemd
我在源包中看到go.mod 文件go-systemd
中也提到了该版本。github.com/coreos/go-systemd/v22 v22.0.0
但是当我运行go get -u
源代码时。它失败并出现错误,我看到在v22.2.0
.
我应该如何使用以前没有此代码的版本来避免此错误?我正在go version 1.16
使用centos7
提前致谢。
go - 使用特定版本的 golang 依赖模块
我正在尝试从github 链接构建 postfix-exporter 代码。它依赖于文件go-systemd
中提到的包。我在文件中看到,提到的包版本是
但是当我为此路径运行时,它开始下载最新版本(),该版本在最新提交中存在问题并导致编译失败。进来的错误是go.mod
github.com/coreos/go-systemd/v22 v22.0.0
go.mod
v22.0.0.
go get -u
v22.2.0
go-systemd
我想知道,如果不是这样,或者我缺少一些选项来尊重中提到的依赖包的版本,如何编译任何依赖模块的特定版本go.mod
提前非常感谢,请原谅我的golang知识。
docker - docker容器上的“go get”意外行为
与我的本地机器相比,在 docker 容器中运行时我遇到了意外的行为go get [module]
,我将不胜感激任何帮助理解这种不同行为的原因。
1) 本地机器
命令:
结果:
- $GOPATH /bin包含可执行文件
gocov
。 - 该模块已下载到$GOPATH /src/github.com/axw/gocov/gocov。
- $GOPATH /pkg不包含任何与
gocov
包相关的内容。
2)Docker容器
Dockerfile:
此 dockerfile 用于测试目的,因为它没有入口点。
结果:
- $GOPATH /bin包含可执行文件
gocov
。 - $GOPATH /src不包含任何与
gocov
包相关的内容。 - 该模块已下载到$GOPATH /pkg/mod/github.com/axw/gocov@v1.0.0。