问题标签 [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.
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.com
:kubernetes的包名以 开头k8s.io/kubernetes
,而 go book 的包名以 开头gopl.io
(并且都使用 github)。
问题是:如果包名不以 开头,是否有任何警告github.com
?例如,可能dep
无法正常工作(go get seems to work fine
)或其他?
mycompany.com/project
另外:拥有包名并将源代码托管在 github 上的正确方法是什么?
go - Go dep 无法解析“golang.org/x/crypto”
我对 go dep
(也不是一般的 golang)不是很熟悉,但我继承了一个需要添加依赖项的项目。运行时,dep ensure -v
我得到以下输出:
我怀疑问题出在:
但这是否表明github.com/golang/protobuf
包中存在依赖性问题?
有人可以解释实际问题是什么以及可能的解决方案吗?
go - 使用 ldflags 设置 Go 变量与供应商文件夹冲突
我目前正在开发一个小型 Go 应用程序,我想通过使用该选项在构建或运行时(使用go build
or )设置特定变量(如 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
选项或其他东西冲突。
提前致谢!
go - Dep/Godep:在包级别定义修订
在 govendor 中,可以为依赖项的每个包指定您想要的修订版。例如:
回购“github.com/myorg/myrepo”。
使用修订版“16b65b2a4e3d30f47875b1cb2abc8a43fc”打包“github.com/myorg/myrepo/x”
使用修订版“2190sdfds034e3d30f47875b1cb2a434c”打包“github.com/myorg/myrepo/y”
代码示例:
这对 Dep 可行吗?
谢谢!
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 项目,但我们最终得到了一个非常庞大的存储库——主要是因为许多供应商目录
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 看起来像这样
go - 是否有任何可用于 Golang 依赖项的缓存代理,例如 NPM(NodesJS)?
对于 NodeJS,我可以使用内部 Nexus 服务器作为中央存储库。此服务器还可以作为代理工作,因此如果本地不知道包,它会转到 registry.npmjs.com 或任何配置并从那里加载包。
这个包将与所有相关的元信息(如版本等)一起存储在 Nexus 中。这样我们总是可以构建,即使所有者删除了公共 repo 或新版本有重大更改。此外,我们可以进行评论并只允许评论的主要包等。
Go 是否有同等可用的东西?
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
然后是:
这样做之后,问题再次浮出水面。
go - 如何告诉我的 go build 在供应商文件夹中查找 godep 库?
我有一个简单的 Dockerfile,我正在尝试构建和运行我的 Go REST API 服务器。
到目前为止,我的 Dockerfile 是:
当我运行 docker-compose up 我得到这个错误:
我正在使用 godeps 并且我的供应商文件夹中包含了所有的库,为什么在这种情况下构建不起作用?
我必须告诉它在供应商文件夹中查找吗?
kubernetes - Golang dep 无法解决依赖关系
我正在使用kubebuilder创建 kubernetes operator 项目。运行快速入门指南中描述的项目 init 命令后
dep ensure
返回下面给出的错误日志。