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
任務實際發佈的內容,而不會有任何實際發佈套件或文件的風險。套件和文件的壓縮檔預設會寫入到 _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 上的 發佈套件 以獲得更多設定和使用說明。請參閱 文件 以獲得所有可用提供者的詳細文件。