Получите ошибку при получении зависимости модуля основной версии

У меня есть исполняемый модуль go, и я пытаюсь выполнить следующую команду

go get github.com/saipraveen-a/number-manipulation/v2

и получите эту ошибку:

module github.com/saipraveen-a/number-manipulation@upgrade found (v1.0.1), but does not contain package github.com/saipraveen-a/number-manipulation/v2

number-манипуляция - это неисполняемый модуль go со следующими тегами v1.0.0, v1.0.1 и v2.0.0.

Я новичок. Так что кто-нибудь, пожалуйста, скажите мне, в чем проблема.

Модуль с основным пакетом

app.go

package main

import (
    "fmt"

    "github.com/saipraveen-a/number-manipulation/calc"
    calcNew "github.com/saipraveen-a/number-manipulation/v2/calc"
)

func main() {
    result := calc.Add(1, 2)
    fmt.Println("calc.Add(1,2) =>", result)

    result = calc.Add(1, 2, 3, 4, 5)
    fmt.Println("calc.Add(1,2,3,4,5) =>", result)

    newResult, err = calcNew.Add()

    if err != nil {
        fmt.Println("Error: =>", error)
    } else {
        fmt.Println("calcNew.Add(1,2,3,4) =>", calcNew.Add(1, 2, 3, 4))
    }
}

go.mod

module main

go 1.14

require github.com/saipraveen-a/number-manipulation v1.0.1

версия go1.14.3 darwin/amd64

пойти на env

GO111MODULE=""
GOPATH="/Users/<user-id>/Golang"
GOMOD="/Users/<user-id>/GoModules/main/go.mod"

Я пробовал установить GO111MODULE=on; но это не меняет значения GO111MODULE

# go build app.go 

go: finding module for package github.com/saipraveen-a/number-manipulation/v2/calc

app.go:7:2: module github.com/saipraveen-a/number-manipulation@latest found (v1.0.1), but does not contain package github.com/saipraveen-a/number-manipulation/v2/calc

1 ответ

Решение

Ваш модуль github go.mod файл выглядит так:

module github.com/saipraveen-a/number-manipulation

go 1.14

В то время как ваш клиентский код импортирует v2:

calcNew "github.com/saipraveen-a/number-manipulation/v2/calc"

Если вы хотите использовать версию с тегами v2.0.0 вам нужно изменить модуль github go.mod файл в:

module github.com/saipraveen-a/number-manipulation/v2

go 1.14

Обратите внимание, что это заставляет вас также изменить пути импорта в самой библиотеке.

А затем потребовать v2 путь к вашему клиентскому файлу go.mod:

module main

go 1.14

require github.com/saipraveen-a/number-manipulation/v2 v2.0.0
Другие вопросы по тегам