Я работаю с Golang 1.14 модулями (в Ubuntu 18.04), и я столкнулся с очень разочаровывающим топи c, в котором я надеюсь найти лучшее решение.
Описание
У меня есть git репо, раздвоенный из другой замечательной работы (cron). Владелец cron уже ответил мне, сказав, что ему нравится моя идея, но она не хочет встраивать ее в свою работу. Хорошо, поэтому я создал свой собственный форк и собираюсь использовать его как ссылку на оригинальную работу. Разбудив его работу и изменив мои потребности, я использовал этот новый модуль (повестку дня) в своем вторичном модуле, который все еще находится в стадии разработки.
Внимание! Использование репозитория fre sh без вилки не допускается, Я неправильно зачисляю оригинальную работу и не получаю от нее обновления обычным способом
Описание проблемы
Когда я просто импортирую свой модуль в мои коды, как в
package main
import (
"fmt"
"github.com/Vinggui/agenda"
)
func main() {
agendaService := agenda.New(agenda.WithSeconds())
fmt.Print("Hi!\n")
agendaService=agendaService
}
менеджер субмодулей Golang делает go get
и возвращает неправильную версию, на самом деле, возвращенная версия не моя, это из исходного репозитория, которая испортила мою компиляцию. Однако, когда я вручную
go get "github.com/Vinggui/agenda"
Golang получает правильную версию в моем хранилище!
Я много искал об этом, и мне кажется, что Golang не «like» разветвляется и ищет более известный репозиторий.
Временное решение
Лучшее решение, которое я нашел на данный момент, - это установка следующего кода в мой go .mods
replace github.com/Vinggui/agenda => github.com/Vinggui/agenda v0.1.4
Желаемый результат
Я могу sh Я мог бы просто импортировать свой форк, как любой другой модуль, и получить правильную версию.
"github.com/Vinggui/agenda"
Есть ли что-нибудь лучшее, что я могу сделать? Почему Golang делает то, что делает сейчас?