2017-02-08 48 views
-2

编译时收到错误。收到以下错误

根本原因是文件有context包的进口,但却编译github.com/docker/docker/vendor/golang.org/x/net/context期间混得如何使它指context进口替代的码头工人vendor

总结问题提到一个,任何指针, 导入该文件中是如下

import "golang.org/x/net/context" 

有一个方法调用这需要上下文对象作为参数,但是,也有两个储存库具有上下文中,

  • golang.org/x/net/context
  • github.com/docker/docker/vendor/golang.org/x/net/context

在编译过程中基于长走的是选择2储存库。但方法需要第一个golang.org/x/net/context。因此在代码段类型误差收到我能想到的

"-X main.version=dev-49-gc8cc01b -X main.commit=c8cc01b -X  main.branch=master" ./... 
github.com/influxdata/telegraf/plugins/inputs/docker 
plugins/inputs/docker/docker.go:103: cannot use c (type *client.Client) as  type DockerClient in assignment: 
    *client.Client does not implement DockerClient (wrong type for ContainerList method) 
      have ContainerList("github.com/docker/docker/vendor/golang.org/x/net/context".Context, types.ContainerListOptions) ([]types.Container, error) 
      want ContainerList("context".Context, types.ContainerListOptions) ([]types.Container, error) make: *** [build] Error 2 sh-4.2# vi plugins/inputs/docker/docker.go 
+2

重新排除你的问题。很难明白。 – Altenrion

+1

检查您的导入。我曾经遇到IDE(IntelliJ或类似的)已经决定它更好地知道什么是“即时”导入的情况,所以我最终导入了绝对错误的软件包...... – Havelock

+0

这里的别名会很方便:-) – Volker

回答

-1

两个选项:

  1. 添加一个别名的上下文进口,例如

    goContext golang.org/x/net/context docContext github.com/docker/docker/vendor/golang.org/x/net/context

  2. 中断上下文的依赖关系为两个文件,或包

相关问题