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