gocenter

https://search.gocenter.io/



https://segmentfault.com/a/1190000023702543



https://github.com/jfrog/goc



通过访问GoCenter,https://gocenter.io,可以发现经常使用的Go依赖包都已经包含在其中了。如果还没有,请提交相关的加入申请。



GoCenter管理了版本化的Go模块,可以和Go应用构建使用的任何CI服务器或私有仓库进行对接。而使用JFrog CLI和Artifactory,可以使得这一过程更加便捷。




要构建Go应用项目,首先需要安装Go客户端(版本1.11.0 或更新的版本) 。而安装Go之后,有三种方法可以从GoCenter解析Go模块:使用goc、使用 go 客户端,或部署本地仓库(如Artifactory),以代理GoCenter。



1、使用goc



推荐在构建中使用GoCenter的方式是通过goc工具。goc工具包装了Go的客户端,器, 能够使用GoCenter中的包正确构建Go应用,而无需手动设置。



要安装goc,需要使用以下的curl命令,或按照goc的github主页(https://github.com/jfrog/goc)的说明:










$ curl -fL https://getgoc.gocenter.io sh


然后, 就可以从Go项目的根目录中运行任何命令, 就像运行Go命令一样。例如:



$ goc build



goc工具自动分配GOPROXY连接GoCenter,所以能够优先从该仓库解析Go的依赖包。对于在GoCenter找不到的包,goc将会试图通过源代码控制系统来解析它们,以更好地保证成功构建Go项目。



Go客户端自身不能执行这种辅助操作(请参阅下文), 因此至少在 GoCenter能够为大多数Go开发人员提供可能需要的所有依赖之前,仍然建议使用goc。



2、使用Go客户端



推荐在构建中使用GoCenter的方式是通过goc工具。goc工具包装了Go的客户端,器, 能够使用GoCenter中的包正确构建Go应用,而无需手动设置。



如上所述,使用GoCenter时并不建议直接利用Go客户端进行构建,因为当在GoCenter找不到相关依赖包时构建会失败。对于Go客户端这种限制的详细信息,可以参考相关的issue和修正信息(https://github.com/golang/go/…)。Go开发人员还是应该改用goc。



当然,如果在充分了解这个限制还希望使用的情况下,也是可以使用Go客户端的。



如果希望构建Go项目时从GoCenter中获取相关依赖包,需要设置GOPROXY指向GoCenter的URL,https://gocenter.io:



$ export GOPROXY=https://gocenter.io



现在就可以使用Go客户端构建Go应用了:



$ go build



3、部署代理GoCenter的私有仓库



如果使用的是如Artifactory这样的私有仓库,则只需设置GOPROXY指向该私有仓库,而把GoCenter创建为该私有仓库当中的远程仓库。



为了要在Artifactory里创建代理GoCenter的远程仓库,需要遵循以下步骤:





  1. 创建新的远程仓库,并设置包类型为Go;




  2. 设置远程仓库的名字,并在URL字段输入https://gocenter.io/;




  3. 点击“保存 & 完成”按键。





还可以创建虚拟仓库,用以聚合同时从本地Go仓库和远程仓库获取的Go依赖包。



一旦在Artifactory里配置好使用GoCenter,就可以使用标准的GOPROXY方式基于Artifactory进行构建。需要注意的是,根据Artifacotry上的设置,需要适当地处理客户端的认证信息,应为当前Go客户端在获取模块时是不会发送相关认证信息的,所以处理起来是有一定难度的。因此,当使用Artifactory代理GoCenter时,建议使用JFrog CLI来构建Go应用。当配置好JFrog CLI和Artifactory的关联之后,就可以使用类似于



“jfrog rt go build”的命令来从Artifactory获取依赖,并构建Go应用。



使用JFrog CLI的好处是可以方便地向Artifactory上传针对特定构建而创建的依赖包,也同时内置支持生成和发布与构建过程相关的元数据。详细信息,请参考JFrog CLI的相关文档。


Category golang