Изменение зависимости библиотеки в Go
У меня есть проект(пусть moduleA). Он использует библиотеку(пусть moduleB). Эта библиотека же использует другую(пусть moduleC). Требуется слегка изменить moduleC, не изменяя при этом moduleB. Как это можно сделать?
Метод с vendor работает, но кажется это не правильный способ решать подобное
Пример:
moduleA
package main
import moduleB
...
moduleB
package moduleB
import moduleC
...
moduleC
package moduleC
...
func funcToFix() {
...
some fix
}
...
Ответы (1 шт):
Решение: Сделайте fork репозитория moduleC, внесите в него требуемые изменения и подключите свой moduleC-forked в проект (удалите moduleC зависимость и используйте moduleC-forked).
Note: вариант с go mod vendor разумеется неверный, как вы и сами заметили, т.к. это локальное представление удаленных зависимостей, изменив что-то в директории vendor, вы не сможете отразить эти изменения в своем репозитории, т.к. vendor директория у вас не индексируется git-ом.
Important: так же, обратите внимание на то, что вы делаете fork конкретной версии, далее, вам нужно будет поддерживать обновление fork-а самостоятельно (новые версии кода из оригинального репозитория вы не будете получать).