Я использовал команду «перейти на github.com/hyperledger/fabric-sdk-go» для загрузки Fabric-sdk-go и его зависимостей. Ошибки не произошло.
В документации golang (https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies) сказано, что «Get загружает пакеты, названные путями импорта, вместе с их зависимостями. Затем он устанавливает названные пакеты, например «go install».
Так что я изначально думал, что все зависимости Fabric-sdk-go будут загружены рекурсивно. Но факт доказал, что я ошибался.
Когда я запускал команду "go install ./..." в каталоге fabric-sdk-go, отображалось много ошибок "не удается найти пакет":
Итак, мои вопросы:
Загружает ли "go get" зависимости рекурсивно или нет?
Как загрузить все зависимости Fabric-sdk-go вместо использования «go get [a_dependency_package]» для загрузки каждой зависимости по одной?
Большое спасибо.
- Does "go get" download dependencies recursively or not?
Да, это так. Не нужно беспокоиться или сомневаться в документации
- How to download all the dependencies of fabric-sdk-go, instead of using "go get [a_dependency_package]" to download every single dependency one by one?
Просто используйте модули go: export GO111MODULE=on
и создайте свой код.
В корне проекта нет точки входа (то есть нет основного метода), поэтому инструменту негде начать поиск, поскольку он фактически не выполняет рекурсивные загрузки. Вместо этого он просматривает файлы в каталоге, который вы указали в URL-адресе, и выбирает пути импорта, указанные в этих файлах. Для дальнейшего использования эта команда будет делать то, что вы хотите, go get github.com/hyperledger/fabric-sdk-go/...
вы можете добавить тройную точку прямо к вашей go get
команде
Но почему после успешного выполнения «go get github.com/hyperledger/fabric-sdk-go» зависимости все еще отсутствуют? Я не могу понять. Пока позже я не выполнил "go get ./...", все зависимости существуют в $GOPATH/src