问题标签 [godeps]

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 回答
1439 浏览

go - 如果 go 包名称不是以 github.com 开头的注意事项?

我最近开始使用 go 并计划为我的代码使用以下目录结构:(src/mycompany.com/project所以包名称将是mycompany.com/project/component),但是在代码审查期间,我的同事(之前使用 go)指出将代码放在src/github.com/mycompany/project(所以包名是github.com/mycompany/project/component)。

我可以理解这对于个人项目来说很方便,但是对于公司项目来说,这对我来说看起来很奇怪。为什么使用哪个源代码控制网站公司很重要?如果公司稍后决定迁移到 bitbucket 怎么办——是否应该将所有项目重构为以 . 开头的包名称bitbucket.org

绝对可以不使用github.comkubernetes的包名以 开头k8s.io/kubernetes,而 go book 的包名以 开头gopl.io(并且都使用 github)。

问题是:如果包名不以 开头,是否有任何警告github.com?例如,可能dep无法正常工作(go get seems to work fine)或其他?

mycompany.com/project另外:拥有包名并将源代码托管在 github 上的正确方法是什么?

0 投票
1 回答
753 浏览

go - Go dep 无法解析“golang.org/x/crypto”

我对 go dep(也不是一般的 golang)不是很熟悉,但我继承了一个需要添加依赖项的项目。运行时,dep ensure -v我得到以下输出:

我怀疑问题出在:

但这是否表明github.com/golang/protobuf包中存在依赖性问题?

有人可以解释实际问题是什么以及可能的解决方案吗?

0 投票
1 回答
720 浏览

go - 使用 ldflags 设置 Go 变量与供应商文件夹冲突

我目前正在开发一个小型 Go 应用程序,我想通过使用该选项在构建或运行时(使用go buildor )设置特定变量(如 Version、GitCommit、BuildID 等)。go run-ldflags

因为在我的公司,我们有几个具有相同基础的项目,所以我决定将带有这些变量的代码提取到一个单独的“信息”模块中,该模块可以导入到每个项目中。

这是我的问题,假设我正在运行这样的应用程序:

go run -ldflags "-X git.mycompany.com/utils/info.Version=1.0.0" app.go

这很好用,并且即使变量不是“主”应用程序的一部分而是依赖项,变量也被正确设置。

然后我决定部署应用程序,所以我使用新dep工具生成vendor文件夹。因此,“info”依赖项现在位于:vendor/git.mycompany.com/utils/info

现在,当我运行与上面相同Version的命令时,不再设置所述变量 ( )。

我在这里错过了什么吗?一旦我删除供应商文件夹,一切都会再次正常运行。就像这个供应商文件夹与-ldflags选项或其他东西冲突。

提前致谢!

0 投票
0 回答
184 浏览

go - Dep/Godep:在包级别定义修订

在 govendor 中,可以为依赖项的每个包指定您想要的修订版。例如:

回购“github.com/myorg/myrepo”。

使用修订版“16b65b2a4e3d30f47875b1cb2abc8a43fc”打包“github.com/myorg/myrepo/x”

使用修订版“2190sdfds034e3d30f47875b1cb2a434c”打包“github.com/myorg/myrepo/y”

代码示例:

这对 Dep 可行吗?

谢谢!

0 投票
0 回答
108 浏览

go - 供应商的层次结构

我的 Go 项目由许多组件组成。每个组件都有自己的供应商目录,该目录由dep. 由于组件具有相似的依赖关系,因此供应商目录中存在大量重复。此外,供应商相当大:~20MB。
我的想法是通过在项目顶部定义通用供应商来减小存储库的大小。 project vendor |--component1 |----main.go |----vendor |--component2 |----main.go |----vendor

每个组件只需要定义特定于他的依赖项。为了不在组件级别上的每个执行中提供公共依赖dep ensure项,我们可以在 Gopkg.toml 文件中指定应忽略哪些包:

ignored = ["github.com/aszecowka/calc"]

问题:有人使用这种方法吗?有什么选择吗?

更新上下文:在我的公司中,我们正在研究 monorepo 方法,我们尝试整合不同的 go 项目,但我们最终得到了一个非常庞大的存储库——主要是因为许多供应商目录

0 投票
0 回答
230 浏览

go - 使用 revel 和 dep 进行依赖管理

我正在尝试创建一个随心所欲的生产系统。我发现 dep 作为版本和依赖管理工具。

由于这将是一个生产系统,我想使用 dep 锁定我正在使用的版本。如果我在 prod 模式下运行服务器似乎工作正常,但如果我尝试在 dev 模式下运行则失败并出现错误

CRIT 20:46:56 revel watcher.go:78:Watcher:无法统计观看路径部分=util path=/home/shaumux/go/mercury/src/bitbucket.org/dataemo/mercury/vendor/github.com/ revel/revel/templates error="stat /home/shaumux/go/mercury/src/bitbucket.org/dataemo/mercury/vendor/github.com/revel/revel/templates:没有这样的文件或目录"

我的 Gopkg.toml 看起来像这样

0 投票
1 回答
975 浏览

go - 是否有任何可用于 Golang 依赖项的缓存代理,例如 NPM(NodesJS)?

对于 NodeJS,我可以使用内部 Nexus 服务器作为中央存储库。此服务器还可以作为代理工作,因此如果本地不知道包,它会转到 registry.npmjs.com 或任何配置并从那里加载包。

这个包将与所有相关的元信息(如版本等)一起存储在 Nexus 中。这样我们总是可以构建,即使所有者删除了公共 repo 或新版本有重大更改。此外,我们可以进行评论并只允许评论的主要包等。

Go 是否有同等可用的东西?

0 投票
0 回答
1079 浏览

go - Go build 找不到使用 dep 确保的供应商包

我遇到了一个错误,即供应商包没有被 go 正确解析;在 macOS High Sierra 10.13.6 上。我将使用 github.com/gorilla/mux 作为示例包

我正在导入包

运行时:

对于供应商中的每个包,我都收到以下错误

该文件夹应位于

并且存在于目录中。

为什么要在下面加上前缀?

更新

删除本地项目并从远程重新克隆后,我尝试在没有下载任何依赖项的情况下进行构建。这有预期的输出:

只有在运行构建命令之后才会产生上述错误dep ensure

更新 2

创建一个空的供应商目录会将输出更改为:

更新 3

为了模拟我调用的 dep,go get github.com/gorilla/mux然后是:

这样做之后,问题再次浮出水面。

0 投票
1 回答
2037 浏览

go - 如何告诉我的 go build 在供应商文件夹中查找 godep 库?

我有一个简单的 Dockerfile,我正在尝试构建和运行我的 Go REST API 服务器。

到目前为止,我的 Dockerfile 是:

当我运行 docker-compose up 我得到这个错误:

我正在使用 godeps 并且我的供应商文件夹中包含了所有的库,为什么在这种情况下构建不起作用?

我必须告诉它在供应商文件夹中查找吗?

0 投票
1 回答
831 浏览

kubernetes - Golang dep 无法解决依赖关系

我正在使用kubebuilder创建 kubernetes operator 项目。运行快速入门指南中描述的项目 init 命令后

dep ensure返回下面给出的错误日志。