**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。
这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
12天前关闭。
Improve this question
我尝试创建i调度器,所以在编写代码和创建部署后,我使用make文件来构建并使用vendor,但当我使用我的第一个代码时,它使用与github reposetory中的代码相同的导入,但当我添加到它并使用k8s.io/metrics/pkg/client/clientset/versioned作为导入时,它给予我一个错误:
cmd/scheduler/main.go:24:5: cannot find package "k8s.io/metrics/pkg/client/clientset/versioned" in any of:
/go/src/github.com/username/scheduler/vendor/k8s.io/metrics/pkg/client/clientset/versioned (vendor tree)
/usr/local/go/src/k8s.io/metrics/pkg/client/clientset/versioned (from $GOROOT)
/go/src/k8s.io/metrics/pkg/client/clientset/versioned (from $GOPATH)
生成文件:
SHELL = /bin/bash
OS = $(shell uname -s)
PACKAGE = github.com/username/scheduler
BINARY_NAME = scheduler
IMAGE = name
TAG = tagsvalue
BUILD_DIR ?= build
BUILD_PACKAGE = ${PACKAGE}/cmd/scheduler
DEP_VERSION = 0.5.0
GOLANG_VERSION = 1.11
.PHONY: clean
clean: ## Clean the working area and the project
rm -rf bin/ ${BUILD_DIR}/ vendor/
rm -rf ${BINARY_NAME}
bin/dep: bin/dep-${DEP_VERSION}
@ln -sf dep-${DEP_VERSION} bin/dep
bin/dep-${DEP_VERSION}:
@mkdir -p bin
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | INSTALL_DIRECTORY=bin DEP_RELEASE_TAG=v${DEP_VERSION} sh
@mv bin/dep $@
.PHONY: vendor
vendor: bin/dep ## Install dependencies
bin/dep ensure -v -vendor-only
.PHONY: build
build: ## Build a binary
go build ${BUILD_PACKAGE}
请帮助我知道这个问题是不清楚,但我是一个新的golang所以任何信息都会有帮助。谢谢
1条答案
按热度按时间mqkwyuun1#
好吧,既然你想知道如何使用go模块,我就写一个简短的总结。完整的文档在www.example.com网站上的herego.dev中。它很容易找到,并从头到尾引导你完成整个过程。
从go 1.4开始,我就一直使用go作为我的主要语言。自从引入go模块以来,我可以诚实地说,我很少需要Makefile。使用模块非常简单:
现在添加依赖项:
添加了依赖项,并创建了一个
go.sum
文件。它作为依赖项的锁文件。它基本上是项目中使用的确切版本的提交哈希。你可以指定一个特定的版本(看到了我们想要的版本v0.3.2而不是0.3.5),你可以只使用下面的命令:
或者,您可以在编辑器中手动将依赖项添加到mod文件中:
等等。检查文档中的
replace
和require_test
之类的内容,以及它们的作用。现在您可以编译您的代码:
系统将自动检查并更新/下载任何尚未下载的依赖项。如果要手动下载依赖项,您可以:
如果你想删除不再使用的依赖项(即清理go.sum文件):
没什么大不了的,真的。