在通过导入项目签出项目之后,我可以指定go get要下载的依赖项。我甚至可以强制下载代码中没有使用的包,方法是导入它们以产生副作用:
import _ "github.com/jteeuwen/go-bindata"
此外,在shell上,我显然可以在路径之后使用省略号安装带有go get的程序:
$ go get github.com/jteeuwen/go-bindata/...然而,我似乎不能将这两种技术结合起来:
import _ "github.com/jteeuwen/go-bindata/..."
$ go get
main.go:9:8: open c:\gopath\src\github.com\jteeuwen\go-bindata\...: Access denied我想告诉go get,要构建(实际上是go generate)这个项目,必须安装go-bindata。是否可以指定安装依赖项?
发布于 2016-05-25 06:09:36
回答你的问题:不。
但是,您可以将供应商绑定到您的项目中,这将在go get对您的项目执行完之后使其可用。
但是,关于何时以及为什么要运行go generate,可能会有一点困惑:go generate的预期用途(据我所知)是用于包或命令作者在开发阶段生成代码。由go {build,install,get}签入并“正常”处理的代码。因此,您可以运行go generate,签入生成的内容和包的用户go get it,而不运行go generate。他们不需要这样做,在geting期间,代码在适当的签入版本中出现。
对于更复杂的构建,最终用户必须执行:使用Makefile或类似的工具,因为这些都超出了go get的范围。
发布于 2016-05-24 22:36:49
在我的一个项目中,我使用戈德普。根据其网页:
该工具假设您在标准的Go工作区中工作,如http://golang.org/doc/code.html中所述。我们希望godep构建在Go 1.4*或更高版本的基础上,但是您可以在任何与Go 1或更高版本一起工作的项目上使用它。
您将在JSON文件中有您的依赖项,就像Node、Bower等.它使用起来很简单。
在您的情况下,假设您已经对包进行了go get编辑,请运行:
godep save这将与所有其他依赖项一起生成JSON文件,并保存到项目中的一个文件夹中。多亏了它,我才能交叉编译我的项目。
https://stackoverflow.com/questions/37424862
复制相似问题