使用GoCenter全速前进

JFrog GoCenter:勇敢地走

更新:自2021年5月1日起,GoCenter中央存储库已经过期,所有功能已弃用。有关中心日落的更多信息请阅读弃用博文

随着Go编程的加速,它已成为世界上发展最快的软件语言之一,试图在不使用不可变存储库的情况下创建健壮可靠的管道是一项挑战。这是因为去模块(可重用的OSS Go代码包)应用程序包含的依赖关系必须从数千个独立的源代码库中解析,每个库都可能使用不同的规程进行维护。因此,对Go包在公共可访问的存储库中更具可预测性、不可变性和可管理性的需求已经出现。

GoCenter通过提供一个公共的中央Go模块库,提供可重复和快速的模块解析,解决了开发人员的痛苦。GoCenter直接从源代码库自动处理和验证Go项目,将其转换为不可变的、版本化的模块,使它们免费提供给Go开发者社区。通过这种方式,我们的目标是授权Go社区可靠地生成他们的Go应用程序的可复制构建。

引入GoCenter

GoCenter提供了通过公共解析模块的能力去代理包括通过托管的免费服务搜索模块的能力。在启动时,GoCenter已经被成千上万最流行的Go项目的模块填充,你的构建可以立即使用这些模块。

启动GoCenter

开发人员也可以提交他们自己的Go项目,以纳入GoCenter,使它们广泛地提供给Go开发社区。

向GoCenter提交一个Go项目

这个预先打包的、版本化模块的中央存储库使得每个开发人员或团队不必构建自己使用的公共模块库,从而消除了采用Go语言的显著成本。

此外,如果您有自己的Artifactory实例,您可以配置on-prem远程存储库以获得对复制构建的完全本地控制,并作为防止连接中断的预防措施。

用GoCenter构建Go项目

要构建你的Go项目,你首先需要有去客户端(版本1.11.0或更新)已安装。一旦你安装了Go,有两种方法可以从GoCenter解析Go模块:使用Go客户端,或者设置一个存储库管理器,如Artifactory来代理GoCenter。

使用Go客户机

要使您的Go项目的构建从GoCenter提取依赖模块,设置GOPROXY到GoCenter的URL (https://gocenter.io):

$ export GOPROXY=https://gocenter.io

现在你可以使用Go客户端来构建你的项目了:

$ go构建

设置代理GoCenter的存储库管理器

如果您正在使用像Artifactory这样的存储库管理器,您只需要指向GOPROXY在您的存储库管理器,并确保GoCenter包括作为一个远程存储库

要在Artifactory中定义一个远程存储库来代理GoCenter,请遵循以下步骤:

  1. 创建一个新的远程存储库并设置成为它的包类型
  2. 设置库的关键值,并输入https://gocenter.io/URL
  3. 点击保存并完成

您也可以创建虚拟存储库聚合来自您本地的包去注册以及远程存储库。

一旦Artifactory被配置为与GoCenter一起工作,您就可以使用使用标准来构建ArtifactoryGOPROXY的方法。请注意,根据Artifactory服务器的设置,您将需要注意适当的客户端授权,这在目前可能是具有挑战性的客户端在检索模块时不发送凭证。因此,我们建议使用JFrog CLI在使用Artifactory代理GoCenter时构建您的项目。一旦JFrog CLI是配置为与Artifactory一起工作,使用去造吧(或其他围棋命令,以jfrog rt)从Artifactory检索依赖项并构建您的Go项目。

JFrog CLI的一个好处它允许您轻松地将为某个构建创建的模块上传到Artifactory。它还为生成和发布关于构建过程的元数据提供了内置支持。有关更多信息,请参见JFrog CLI文档

搜索模块

GoCenter登陆页面中的搜索框可以帮助您通过特定的模块名称进行搜索(例如,“iris”)。当执行搜索时,GoCenter将列出与所搜索名称匹配或部分匹配的模块。

GoCenter搜索

单击一个结果会显示GoCenter处理的版本列表。

GoCenter搜索结果

处理版本的列表用颜色编码来表示其可用性状态:

绿色意味着该模块版本包含在GoCenter中,并且可用。

红色的表示模块未能被包含,且不可用。

灰色的意味着模块正在被包含的过程中,但还不可用。

搜索结果还显示(如果有的话)在Go项目的相关Git存储库中找到的版本列表,但还没有在GoCenter中。如果有这样的缺失版本,您可以通过点击“添加缺失版本”将其添加到GoCenter。

请求包括你的围棋模块

如果你想把你的Go项目添加到GoCenter,让Go开发者社区可以使用它,你可以在一个包含请求中提交它。

您可以首先对想要包含的模块名执行搜索。如果您的模块不存在,那么您可以单击提供的模块添加图标,请求添加您的模块。

一旦你这样做了,你将看到纳入申请表格。

在这里,您可以输入您请求包含的Go模块的URL。您可以在该模块的搜索结果中查看项目的包含状态。

GoCenter将根据以下最低标准验证纳入请求:

  • Go模块在一个公共Git回购中,属于gihub.com或gopkg.in
  • 回购是设置为存档
  • Git回购必须至少有3颗星

保持运动

自2007年谷歌首次构思以来,(又称GoLang)已迅速成为最流行的编程语言之一.事实上,两者都是赫尔姆和库伯内特斯在2017年的一项调查中,开发人员将围棋列为最受欢迎的语言,67%的开发人员报告说在工作中使用围棋编程。

基于这个原因,我们希望GoCenter能够为不断增长的Go开发者社区提供必要的服务,并帮助Go与DevOps的需求更加兼容。

您可以通过浏览器访问GoCenterhttps://gocenter.io.您可能会发现您经常使用的OSS Go包已经包含在您的构建中了。如果没有,请提交包的包含请求。

作为一个版本化模块的Go注册表,GoCenter可以通过任何CI服务器或二进制库管理器引用。但是JFrog CLI和Artifactory使它特别容易。

想了解更多关于GoCenter的深入技术信息?来看看GoCenter Github仓库

如果您还没有使用Artifactory,您可以这样做开始免费试用与Artifactory和Go一起行动。

https://youtu.be/z6Rnhw29WZY