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: Как подключить внешнюю библиотеку и исключить ненужные зависимости