2

実行可能な 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-manipulationは、v1.0.0、v1.0.1、および v2.0.0 のタグを持つ実行不可能な go モジュールです。

私は行くのが初めてです。誰かがここで何が問題なのか教えてください。

メインパッケージ付きモジュール

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

go バージョン go1.14.3 ダーウィン/amd64

環境に行く

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

set 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
4

1 に答える 1

2

github モジュールgo.modファイルは次のようになります。

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

go 1.14

クライアントコードがインポートされているのに対しv2

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

タグ付けされたバージョンを使用する場合は、github モジュールのファイルを次v2.0.0のように変更する必要があります。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
于 2020-07-08T09:12:03.040 に答える