Comments 9
Так почему бы не вынести драйвера в отдельный пакет?
import (
"path.to/your/lib"
"path.to/your/lib/drivers/postgres"
// or
"path.to/your/lib/drivers/json"
// ...
)Насколько помню, будут скачиваться только те зависимости, которые явно использованы.
Как вариант, поиграться с условной компиляцией
Пользователь библиотеки должен явно указывать tags при сборке своего проекта.
go build -tags mylib_withpostgressПользователь библиотеки должен явно указывать tags при сборке своего проекта.
Хорошее дополнение, как один из вариантов решения, когда надо исключить зависимости на уровне компиляции. Единственно, что на уровне исходного кода зависимости останутся.
Не обязательно.
Например, в проекте есть файл mylib_postgress.go, у которого в в начале файла
И есть файл mylib_postgress_dummy.go, у которого в в начале файла
который полностью описывает те же интерфейсы и реализации, что и первый файл, но не обращаясь к либам постгресса, а просто выкидывая panic в каждом методе.
Например, в проекте есть файл mylib_postgress.go, у которого в в начале файла
// +build mylib_withpostgressИ есть файл mylib_postgress_dummy.go, у которого в в начале файла
// +build !mylib_withpostgressкоторый полностью описывает те же интерфейсы и реализации, что и первый файл, но не обращаясь к либам постгресса, а просто выкидывая panic в каждом методе.
Sign up to leave a comment.
Go: Как подключить внешнюю библиотеку и исключить ненужные зависимости