我在销售我的go-project时遇到问题。尝试使用glide和go-dep-遇到同样的问题。$goget-ugo.opencensus.io给出以下错误:packagego.opencensus.io/opencensus-go:unrecognizedimportpath"go.opencensus.io/opencensus-go"(httpsfetch:Gethttps://go.opencensus.io/opencensus-go?go-get=1:dialtcp:i/otimeout)此包的Github链接-https://github.com/census-instru
将带有/vendor目录的现有项目转换为使用Go模块(go版本1.12)。我执行gomodinit生成go.mod文件。然后我执行goget-u./...来填充go.mod文件。在此期间,它会尝试在github上找到一个不再存在的包。它在我的/vendor目录中出售。在我可以升级我的代码以使用不同的包之前,我如何才能继续转换为使用模块?也就是说,我想保留一些东西vendored(我在/vendor下也有一些修改过的代码),而其他东西则由gomodules处理。 最佳答案 您不能混合使用vendor目录行为和模块,每种依赖性解析方法都
我正在尝试使用grpc"google.golang.org/grpc"包。import("github.com/xxxx/yyyy""google.golang.org/grpc")conn,err:=grpc.Dial(address)pppp.NewXXXXClient(conn)//whereppppisfromgithub.com/xxxx/yyyy如果github.com/xxxx/yyyy也提供相同的grpc包会怎样?我收到如下编译错误cannotuseconn(type*"google.golang.org/grpc".ClientConn)astype*"github.
相关代码如下:import(core"k8s.io/api/core/v1"metav1"k8s.io/apimachinery/pkg/apis/meta/v1""k8s.io/kubernetes/pkg/api/legacyscheme")...funcPodExec(clusterIdstring,namespacestring,podNamestring,containerNamestring,cmdstring)(){...req.VersionedParams(&core.PodExecOptions{Container:containerName,Command:[]s
我正在开发一个不是包而是服务的Go项目。它取决于mgo等。因为这项服务在法律上应该是安全版本控制和高可用性的,所以我们决定在项目中供应mgo依赖项。由于法律要求,我们不能仅仅依靠提取origin/master上的任何版本来获取依赖项。显然,这会破坏所有标准命令的GOPATH,因为它不再位于GOPATH下,而是位于Git存储库中的vendor目录中:~/src/link_tracker/main.gomain_test.govendor/src/labix.org/etc...我们目前正在使用一个相当丑陋的Bash脚本来解决这个问题,该脚本破坏了许多环境变量并进行了一些符号链接(symb
我一直遇到我在本地安装依赖项的问题,它工作正常,我推送到持续集成服务器,然后它中断了,因为我忘记了godepsave./...依赖项.如何运行go命令但需要vendor导入?编辑:我正在使用go1.6。如果第3方依赖项不解析给vendor,我希望命令失败。换句话说,有没有办法在测试期间停止解析$GOPATH中的依赖项?我无法更改环境变量,因为那样我的项目模块都无法解析。如何强制依赖vendor? 最佳答案 没有办法阻止构建器扫描$GOPATH包。看来,您使用不太好的流程来管理依赖项。我建议您使用glide进行销售。最推荐的工作流程:
我的项目结构/github.com/user-libraries-services-service-api-signup-Dockerfile-main.go-service-api-second-...-vendorservice-api-signup中的Docker文件FROMgolangCOPY./go/src/github.com/user/services/service-api-signup#needtocopyallthedependenciesonvendorto/go/src/github.com/..如何将我对vendor和libraries文件夹的所有依赖项复制到
我对Go相当陌生,有Java背景,正在尝试找出Go依赖管理的最佳实践。如果我的项目A依赖于项目B,并且我在我的vendor包中引用了项目B,那么运行goinstall会下载我需要的一切。但是,假设我在项目B中发现了一个错误并修复了,我如何确保项目A保持最新状态?比如,是否有某种方法可以在每次部署时进行安装,以确保我没有遗漏任何东西?在Java中,在每次部署时我都会做我自己的mvnpackage以最好地确保每个部署都是自给自足的。有什么方法可以在Go中做同样的事情吗?如果这是一个非常基本的问题,我深表歉意-但我找不到好的答案。 最佳答案
我在使用vendor目录中的google.golang.org/grpc时遇到问题,并且出现以下错误cannotuse&metadata.HeaderMD(type*"google.golang.org/grpc/metadata".MD)astype*"project1/vendor/google.golang.org/grpc/metadata".MDinargumenttogrpc.Header虽然我使用的是从我的gopath复制的必要版本的包,但我收到了错误。但是,当我从vendor中删除golang.google.org/grpc文件夹时,我的项目从gopath获取依赖项并且
情况:假设我有一个名为mypackage的包。它公开了一个名为Build()的方法,该方法返回一个由名为thirdpartypackage的第三方库公开的具体结构,例如如下图所示:packagemypackageimporttpp"github.com/thirdpartycompany/thirdpartypackage"funcBuild()*tpp.SharedStruct{//...implementation}公开SharedStruct的包在mypackage中出售,因为我想分发它并使该包独立。问题:将mypackage导入另一个项目并在我的(集成)测试中使用thirdpa