Go мод не может найти версию v0.0.0-00010101000000-000000000000 зависимости - PullRequest
2 голосов
/ 19 сентября 2019

Я пытаюсь загрузить все зависимости проекта через go mod;проблема возникает, когда дело доходит до выполнения go mod vendor в CLI.Вывод выглядит следующим образом:

go: finding github.com/hyperledger/fabric-sdk-go v0.0.0-00010101000000-000000000000
go: github.com/hyperledger/fabric-sdk-go@v0.0.0-00010101000000-000000000000: unknown revision 000000000000
go: error loading module requirements

Код, который импортирует библиотеки:

import (    
    "github.com/hyperledger/fabric-sdk-go/pkg/client/ledger"
    "github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
    "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
)

krakengosdk - это имя пакета, над которым я работаю:

go mod init krakengosdk

Есть решение?Некоторое время я искал какое-то решение, но ничего полезного не наткнулся.

РЕДАКТИРОВАТЬ: я обновил версию Go до 1.13;похоже, что ошибка должна быть с "github.com/hyperledger/fabric-sdk-go/test/integration@v0.0.0-20190918153951-5d7ae7a5be8f":

go get -v github.com/hyperledger/fabric-sdk-go/test/integration@latest
go: finding github.com/hyperledger/fabric-sdk-go/test/integration latest
go get: github.com/hyperledger/fabric-sdk-go/test/integration@v0.0.0-20190918153951-5d7ae7a5be8f requires
    github.com/hyperledger/fabric-sdk-go@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Вопросы:

  1. Какой у вас точный файл go.mod?
  2. Есть ли у вас какие-либо директивы replace для github.com/hyperledger/fabric-sdk-go?
  3. Если у вас нет на данный момент, вы делали это когда-то?

Эта длинная версияv0.0.0-00010101000000-000000000000 - это то, что обычно появляется, если у вас есть директива replace, но у вас нет соответствующей директивы require, а команда go автоматически добавляет директиву require для вас, использующей эту длинную версию.

Это может быть хорошо, но мне интересно, если вы сделали что-то вроде добавления replace, но потом удалили replace, оставив на месте длинную версию v0.0.0-00010101000000-000000000000 в require.Или что-то в этом роде.

Что произойдет, если вы:

  1. Удалите все директивы replace для github.com/hyperledger/fabric-sdk-go, которые могут иметь
  2. Измените requireдля github.com/hyperledger/fabric-sdk-go будет:
 require github.com/hyperledger/fabric-sdk-go latest
Выполнить go list -m all

Кроме того, если это еще не так, вы должны использовать последнюю версию Go 1.13, которая исправляет некоторые ошибки, но часто имеет гораздо лучшие сообщения об ошибках.

0 голосов
/ 19 сентября 2019

Предлагаемая диагностика

Я предлагаю попробовать эти команды в консоли (bash / dash / fish / zsh):


# 1. Create clean project 
$ mkdir /tmp/checkmods && cd /tmp/checkmods  # create clean directory
$ export GO111MODULES=on
$ go version # check that version 1.13
$ go mod init main # name of package does not matter here

# 2. Install packages, check output
$ go get -v github.com/hyperledger/fabric-sdk-go/pkg/client/ledger
$ go get -v github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt
$ go get -v github.com/hyperledger/fabric-sdk-go/pkg/fabsdk

# 3. Create main.go 
$ touch main.go
$ # edit main.go, add imported packages, import something from those packages
$ go mod vendor 
# Do you have problems here? 
# if you encounter problems: 
# - play around  with `go mod tidy`
# - look at `go.mod` and `go.sum`
# - `go mod graph/verify/why` - are your friends

Пример main.go:

package main

import (
    "fmt"
    "github.com/hyperledger/fabric-sdk-go/pkg/client/ledger"
    "github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
    "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
)

func main() {
    var (
        cln  &ledger.Client
        rsm  &resmgmt.Client
        fbs  &fabsdk.FabricSDK
    )
    fmt.Printf("%T %T %T\n", cln, rsm, fbs)
}

Анализ

Если вы столкнулись с проблемами: объясните, по какой линии вы столкнулись, что за проблема.

Если все в порядке с чистым стартом: посмотрите, что отличается между вашим проектом и чистым стартом(отличается от go.sum & go.mod)

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...