Проблема с общей библиотекой вендоров в разных проектах - PullRequest
0 голосов
/ 10 мая 2019

Я только начал делать некоторый «серьезный» код в GoLang, и я пытаюсь использовать собственную библиотеку утилит, которую я создал с некоторыми общими функциями в новом проекте. Один из моих общих библиотечных методов возвращает экземпляр структуры AWS SDK Session, которую я пытаюсь использовать в своем внешнем проекте.

Я использую 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

В идеале я хотел бы поделиться ссылками на одни и те же структуры в нескольких проектах. Я определенно упускаю некоторые основные понятия о том, как язык работает и компилируется. Ценю любую помощь. Спасибо !!

...