Hex 包管理
对于包管理,rebar3
使用 hex.pm,这是一个用于 Erlang 和 Elixir 包的包管理器。
基本用法
您应该阅读 文档 以获取每个提供程序的完整指南,但以下是对基本用法的简要概述。
注册 Hex 用户
注册用户时,系统会提示您输入用户名、电子邮件和密码。电子邮件用于在注册过程中确认您的身份,以及在您的某个包出现问题时与您联系。电子邮件绝不会与第三方共享。
$ rebar3 hex user register
Username: johndoe
Email: john.doe@example.com
Password:
Password (confirm):
Registering...
Generating API key...
You are required to confirm your email to access your account, a confirmation email has been sent to john.doe@example.com
用户认证
如果您已拥有 hex.pm 的用户,请运行
$ rebar3 hex user auth
请注意,这将询问您的 hex.pm 用户名和密码,以及用于加密您对存储库具有写入权限的 API 令牌的密码。发布包时,您必须提供此密码才能解密令牌以进行发布。
有关更多信息,请参阅 文档。
构建
build
提供程序对于查看使用 publish
或 cut
任务实际发布的内容非常有用,而无需任何实际发布包或文档的可能性。包和文档的 Tarball 默认写入 _build/<profile>/lib/your_app/hex/
。
$ rebar3 hex build
有关更多信息,请参阅 文档。
发布
有两个提供程序可用于发布包,publish
和 cut
默认情况下,publish
会构建并将您的包和文档推送到存储库。有关更多信息,请参阅 文档。
$ rebar3 hex publish
cut
可用于提供一些关于版本控制和 Git 标签的其他功能。有关更多信息,请参阅 文档。
$ rebar3 hex cut
无论哪种情况,这两个提供程序都将显示正在发布的内容的详细信息(哪些文件、版本、依赖项)并询问是否应继续,因此请务必仔细阅读输出并确保它正在发布您期望的内容。
管理包所有者
可以使用 hex owner
命令添加、删除和列出您是所有者的包的所有者。包也可以转移到 hexpm 上的其他注册用户。
$ rebar3 hex owner [add | remove | list | transfer] <package> <email>
有关更多信息,请参阅 文档。
停用包
可以通过 retire
提供程序在 hexpm 上将包标记为已停用
$ rebar3 hex retire PACKAGE VERSION REASON --message
如果出现错误,也可以取消停用
$ rebar3 hex retire PACKAGE VERSION --unretire
有关更多信息,请参阅 文档。
组织
rebar3_hex 支持通过 organization
提供程序使用组织。
只需将您的组织添加到全局 rebar.config(即 ~/.config/rebar3/rebar.config
)或本地项目 rebar.config 中。
{hex, [{repos, [#{name => <<"hexpm:your_org">>}]}]}.
然后,您可以使用组织存储库进行身份验证。请确保您已首先使用主存储库进行身份验证
$ rebar3 hex auth # make sure you're authenticated to the main repo first
$ rebar3 hex organization auth hexpm:your_org # authenticate to the org
现在,您可以为您的组织生成、撤销和列出密钥。以下是如何生成用于 CI 的密钥的示例。
有关更多信息,请参阅 文档。
用于 CI 的只读存储库密钥
如果您有私有组织或其他私有存储库,建议您使用特定于存储库的认证令牌从 CI 中读取存储库。要生成令牌
$ rebar3 hex organization auth hexpm:myrepo
Successfully authenticated to hexpm:myrepo
现在,您可以生成一个密钥用于组织的 CI。
$ rebar3 hex organization key hexpm:myrepo generate
abc123
然后在 CI 中使用任何可用的方法将环境变量设置为令牌,并在 CI 运行的开头添加此调用以将令牌添加到您的 rebar3 hex 配置中。下面我们将使用环境 REPO_KEY
作为示例。
$ rebar3 hex organization auth hexpm:myrepo --key $REPO_KEY
搜索 hexpm
search
提供程序可用于方便地在 hex.pm 上搜索包。
$ rebar3 hex search
进一步阅读
有关更多设置和使用说明,请参阅 hexpm 上的 发布包。有关所有可用提供程序的详细文档,请参阅 文档。