在不同的go项目中共享供应商库出现问题

时间:2019-05-10 16:54:02

标签: go package project common-library

我刚刚开始在GoLang中执行一些“严肃的”代码,并且我试图使用在新项目中使用一些常见功能构建的自定义utils库。我的一种常见库方法返回了我要在外部项目上使用的AWS开发工具包会话结构的实例。

我将dep用于我的项目依赖项,并以相同的方式将(项目和库)SDK导入:

import "github.com/aws/aws-sdk-go/aws/session"

但是,编译器抱怨我在库方法中返回的Session结构与我在项目中需要的Session接口不同。

sess, err := myawsutils.NewSession()
s3Client := s3.New(sess)
        *session.Session does not implement "gitlab.com/xyz/storage-sls.xyz.com/api/go/vendor/github.com/aws/aws-sdk-go/aws/client".ConfigProvider (wrong type for ClientConfig method)
                have ClientConfig(string, ...*"gitlab.com/xyz/golang-sls-utils/vendor/github.com/aws/aws-sdk-go/aws".Config) "gitlab.com/xyz/golang-sls-utils/vendor/github.com/aws/aws-sdk-go/aws/client".Config
                want ClientConfig(string, ...*"gitlab.com/xyz/storage-sls.xyz.com/api/go/vendor/github.com/aws/aws-sdk-go/aws".Config) "gitlab.com/xyz/storage-sls.xyz.com/api/go/vendor/github.com/aws/aws-sdk-go/aws/client".Config

理想情况下,我想在多个项目中共享对相同结构的引用。我肯定缺少该语言工作和编译方式的一些基本核心概念。感谢任何帮助。谢谢!

0 个答案:

没有答案