我在一个 fork 的sha3
项目中使用go
包。我正在使用该程序包中不存在的特殊功能,因此必须从gist
下载文件,将其插入sha3
程序包并进行编译。
一切正常。但是,任何想要运行我的代码的人,都必须获取该文件并将其首先插入到标准sha3
包中,然后安装该包并运行我的项目。
我可以将gist
文件和sha3
包含在提交中的最佳方法是什么,以便任何人都可以克隆并运行它?这是文件路径:
workspace-
|_src__
|_github.com
| |_myproject
| |_codes
| |_.git
|_golang.org
|_x
|_crypto
|_sha3
|_custom.go
最佳答案
从1.5开始,您可以在项目的根目录(vendor
)放置一个 workspace/src/github.com/myproject/vendor
folder。此文件夹是导入路径。在构建时,go build
将首先在您的供应商文件夹内查找软件包,如果找不到,则将在$GOPATH
内查找。
您可以将自定义golang.org/x/crypto
包复制到供应商文件夹中,并将其添加到您最喜欢的VCS中。
另一种解决方案是对golang.org/x/crypto存储库进行 fork (例如github.com/user/mycrypto
),然后使用go get
命令获取如下代码:
go get github.com/user/mycrypto
话虽如此,VonC是对的,使用依赖管理器是一个好习惯,因为它可以跟踪您已安装的库的版本,并且可以提供更好的可移植性。
关于git - 在自定义GO程序包之上提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48633765/