Ошибка импорта: неверная версия, неизвестная версия
Код, структура файла слева и ошибка
package main
import (
"fmt"
"github.com/cilium/cilium/api/v1/models"
"github.com/cilium/cilium/pkg/client"
log "github.com/sirupsen/logrus"
)
func main() {
fmt.Println("Starting Application...")
fmt.Println("Terminating Application...")
}
Это ошибка, которую я получаю при запуске: иди, запустите main.go
github.com/cilium/cilium@1.7.2 requires github.com/optiopay/kafka@v0.0.0-2080809090225-01ce283b732b: ivalid version: unknown revision 01ce283b732b
Я использую файл мода go для своих зависимостей, и моя версия go - последняя 1.14
Я также проверил свою файловую структуру, и у меня уже есть cilium@v1.7.2 в pkg/mod/github.com/cilium
Я пробовал добавить github.com/optiopay/kafka
под моим оператором импорта в моем коде, но я все еще получаю ту же самую ошибку.
Я понятия не имею, как это исправить, я искал в Google, но не смог найти определенного или ясного ответа, который работал. Любая помощь приветствуется.
4 ответа
Вы видите эту ошибку, потому что replace
директивы в go.mod
игнорируются go mod
/go get
и go.mod
Файл Cilium v1.7.2 содержит множество директив замены. Чтобы обойти эту проблему, реплицируйте директивы replace той версии Cilium, которую вы пытаетесь импортировать в своюgo.mod
файл. Пример для Cilium v1.7 можно найти в этом репозитории.
Вместо этого вы должны использовать этот импорт:
"github.com/cilium/cilium/pkg/k8s/client/clientset/versioned/typed/cilium.io/v2"
См. Пример клиента в следующем сообщении:https://runkiss.blogspot.com/2021/11/golang-integration-with-cilium-and.html
кажется optiopay / kafka - это ваше личное репо. Вы можете настроить ssh с помощью git. и установите свой URL-адрес в git config, чтобы использовать ssh вместо https.
Шаги:
- настроить ssh (если это еще не сделано)
- обновить конфигурацию git ->
git config --system url."git@github.com:".insteadOf "https://github.com/"
Ошибка - версия, которую go пытается извлечь для этого конкретного модуля, который ее импортирует, либо устарела, либо недействительна.
Решение . Например, в моем случае я получал следующую ошибку:
go: downloading github.com/myk4040okothogodo/tutorial/gen/go/proto/books v0.0.0-00010101000000-000000000000
github.com/myk4040okothogodo/tutorial/books imports
github.com/myk4040okothogodo/tutorial/books/server imports
github.com/myk4040okothogodo/tutorial/gen/go/proto/books: github.com/myk4040okothogodo/tutorial/gen/go/proto/books@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000
как вы можете видеть выше, мой модуль «github.com/myk4040okothogodo/tutorial/books/server» импортирует другой модуль «github.com/myk4040okothogodo/tutorial/gen/go/proto/books:» этот импорт выдает ошибку выше, поэтому я перейдите в мой файл go.mod и внесите следующие изменения:
1 module github.com/myk4040okothogodo/tutorial/books/server
2
3 go 1.18
4
5 replace github.com/myk4040okothogodo/tutorial/db => ../../db
6
7 replace github.com/myk4040okothogodo/tutorial/gen/go/proto/books => ../../gen/go/proto/books
8
9 require (
10 github.com/arangodb/go-driver v1.3.2
11 github.com/myk4040okothogodo/tutorial/db v0.0.0-00010101000000-000000000000
12 github.com/myk4040okothogodo/tutorial/gen/go/proto/books latest
13 google.golang.org/grpc v1.47.0
14 )
проверьте выше в строке 12, где я поставил «последняя» вместо номера версии, т.е. «v0.0.0...."
Я сохраняю файл, а затем запускаю «go mod tidy» .
Затем компилятор изменяет обозначение «последняя» на актуальную версию, т.е. она будет выглядеть, как показано ниже, после выполнения команды mod tidy.
1 module github.com/myk4040okothogodo/tutorial/books/server
2
3 go 1.18
4
5 replace github.com/myk4040okothogodo/tutorial/db => ../../db
6
7 replace github.com/myk4040okothogodo/tutorial/gen/go/proto/books => ../../gen/go/proto/books
8
9 require (
10 github.com/arangodb/go-driver v1.3.2
11 github.com/myk4040okothogodo/tutorial/db v0.0.0-00010101000000-000000000000
12 github.com/myk4040okothogodo/tutorial/gen/go/proto/books v0.0.0-20220601171028-60237b9c9583
13 google.golang.org/grpc v1.47.0
14 )
PS: проверьте пакет, в который я вношу изменения, не изменяйте неправильный импорт