私有包和组织

从 rebar3 版本 3.7.0 开始,可以同时使用多个 Hex 仓库(或索引)。仓库按顺序声明,从优先级最高到优先级最低。

查找包时,会按顺序遍历仓库。只要找到符合描述的包,就会下载。每个找到的包的哈希值都会保存在项目的 lockfile 中,因此如果仓库顺序发生变化,并且其中一些仓库最终包含了相同名称和版本对的冲突包定义,则只会下载预期的包。

这允许使用相同的机制来处理镜像、私有仓库(由 hex.pm 提供)和自托管索引。

发布或使用私有包

要发布或使用私有仓库,您必须使用 rebar3_hex 插件进行身份验证,在将私有组织(定义为 parent_repo:organization,请参见以下示例)声明为 rebar3 配置中的仓库后,使用 rebar3 hex organization auth 命令。身份验证后会创建一个单独的配置文件 ~/.config/rebar3/hex.config 来存储密钥。

{repos, [
  #{name => <<"hexpm:private_org">>}
]}.

要发布到私有仓库,请使用 rebar3 hex publish -r hexpm:private_org 命令。

在 CI 和构建服务器上进行身份验证

您可以在组织的 仪表板 上生成组织密钥。

$ rebar3 hex organization auth hexpm:private_org -k <key>

然后可以使用它在您的 CI 服务器上获取包,而无需使用用户名和密码进行手动身份验证。