我在一个 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/

10-10 23:11