我在分叉的sha3
项目中使用go
包。我正在使用该软件包中不存在的特殊功能,我必须从gist
下载文件,将其插入sha3
软件包并进行编译。
一切都很好。但是,任何想要运行我的代码的人,都必须先获取该文件并将其插入标准sha3
包,然后安装包并运行我的项目。
我可以将gist
文件和sha3
包含在我的提交中的最佳方式是什么,所以任何人都可以克隆并运行它?这是文件路径:
workspace-
|_src__
|_github.com
| |_myproject
| |_codes
| |_.git
|_golang.org
|_x
|_crypto
|_sha3
|_custom.go
答案 0 :(得分:2)
查看dep
:
dep ensure
。 如果您没有安装go dep,请先键入:
go get -u github.com/golang/dep/cmd/dep
这将提供您的依赖关系:请参阅“Understanding and using the vendor folder”。
答案 1 :(得分:1)
从1.5开始,您可以将vendor
folder放在项目的根目录(workspace/src/github.com/myproject/vendor
)。此文件夹是导入路径。构建时,go build
将首先查找供应商文件夹中的包,如果找不到,则会查看$GOPATH
内部。
您可以将自定义golang.org/x/crypto
包复制到供应商文件夹中,然后将其添加到您喜欢的VCS中。
另一个解决方案是创建golang.org/x/crypto存储库的分支,如github.com/user/mycrypto
,并使用go get
命令获取如下代码:
go get github.com/user/mycrypto
话虽如此,VonC是对的,使用依赖管理器是一个很好的做法,因为它会跟踪您安装的库的版本,并且它允许更好的可移植性。