
Rebar3はErlangプログラミング言語用のツールで、Erlangで記述されたプロジェクトを(Elixirで)簡単かつ便利に管理できます。
長い間Erlangを知っていた人は古い鉄筋を知っていて、おそらくそれをまだ使用しています。 多くの人(特に、はるかに発達したエコシステムを持つ他の言語から来た人)は鉄筋が好きではなく、時々ここで「恥ずべき偽物」と呼びます。これはPerlスクリプトに置き換えることができます。 幸いなことに、私は(上記の言葉の著者とは異なり)鉄筋をあまり使う必要はありませんでしたが、鉄筋は基本的なことでかなりうまくいきました。 しかし、「悪くない」は「良い」ではありません。 この状況に多くの反対意見があり(「悪くない」)、したがって、彼らは現在活発に開発されているrebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    プロジェクトの形で第二の人生を強化することを決めました。 とりわけ、著名なフレッド・ヘーバートirは、「アーランを探検してください」という本を世界に紹介し、プロジェクトに取り組んでいます。 
 この記事での私の目標は、 rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    注意を引くことrebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     。 すでにrebar/rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    精通しているrebar/rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     、この記事はあまりrebar/rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ませんが、Erlangの世界の初心者は興味があるかもしれません。  rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     (インストール、コンパイルなど)から始める方法について説明します。 
Rebar3セットポイント
インストールに関しては、2つの方法があります。
- すでにコピーされたrebar3ファイルをダウンロードします。
 - ソースコードからすべてを収集します。
 
誰かを怒らせないために、私は両方の方法を示します。
方法1:
 ➜ ~ wget https://s3.amazonaws.com/rebar3/rebar3 && chmod +x rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      2番目の方法:
 ➜ ~ git clone https://github.com/erlang/rebar3.git ➜ cd rebar3 ➜ ./bootstrap
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       ここで、ファイルパスを$PATH
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    環境変数に追加する必要があります。 
これは次のように行われます。
 ➜ ./rebar3 local install ===> Extracting rebar3 libs to ~/.cache/rebar3/lib... ===> Writing rebar3 run script ~/.cache/rebar3/bin/rebar3... ===> Add to $PATH for use: export PATH=$PATH:~/.cache/rebar3/bin
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       その後、入力を求められたコマンドを実行するか、この行を*rc
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ファイル( ~/.zshrc
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     、 ~/.bashrc
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     )に追加します。 
たとえば、次のように:
 ➜ ~ echo "export PATH=$PATH:~/.cache/rebar3/bin" >> ~/.zshrc
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      最初の申請
Rebar3(ほとんどの自尊心のあるプロジェクト管理ツールと同様)を使用すると、既製のテンプレートからアプリケーションレイアウトを作成できます。 rebar3はOTPアプリケーション専用の構造を作成することに注意してください。 以下に利用可能なテンプレートのリストを示しますが、説明を翻訳する意味はわかりません。
 app: Complete OTP Application structure. cmake: Standalone Makefile for building C/C++ in c_src escript: Complete escriptized application structure plugin: Rebar3 plugin project structure release: OTP Release structure for executable programs lib: Complete OTP Library application (no processes) structure
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       このapp
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    のみ興味があり、このテンプレートに基づいてアプリケーションを作成します。 
 ➜ ~ rebar3 new app habrapp ===> Writing habrapp/src/habrapp_app.erl ===> Writing habrapp/src/habrapp_sup.erl ===> Writing habrapp/src/habrapp.app.src ===> Writing habrapp/rebar.config ===> Writing habrapp/.gitignore ===> Writing habrapp/LICENSE ===> Writing habrapp/README.md
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      テンプレートが作成されました。 次に、プロジェクトの構造を見てみましょう。
 ➜ ~ cd habrapp ➜ ~/habrapp tree . ├── LICENSE ├── README.md ├── rebar.config └── src ├── habrapp_app.erl ├── habrapp.app.src └── habrapp_sup.erl
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       通常の構造化されたErlangアプリケーション。 私が言いたいのは、先を見据えて、 rebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    アプリケーションに関するメタデータ(依存関係データを含む)を保存するために使用されるということrebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
あなたが双方向性の恋人なら、rebar3はあなたを失望させません。 シェルモードに簡単に切り替えることができます。
 ➜ ~/habrapp rebar3 shell ===> Fetching rebar3_hex ({pkg,<<"rebar3_hex">>,<<"3.0.0">>}) ===> Downloaded package, caching at /home/lk/.cache/rebar3/hex/default/packages/rebar3_hex-3.0.0.tar ===> Compiling rebar3_hex ===> Verifying dependencies... ===> Compiling habrapp Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:0] [kernel-poll:false] Eshell V7.3 (abort with ^G) 1> application:start(habrapp). ok 2> application:stop(habrapp). =INFO REPORT==== 19-Jan-2017::14:03:38 === application: habrapp exited: stopped type: temporary ok
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      ところで、Fred HebertのWebサイトの記事全体がシェルのトピックに当てられています。
パッケージを追加または削除する
 最初に行う必要があるのは、 rebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    というrebar3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    プラグインをインストールすることです。 これを行うには、 rebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ファイルを編集し、必要なプラグインの名前をアトムの形式で{plugins, [rebar3_hex]}.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    横のタプルに追加する必要があります: {plugins, [rebar3_hex]}.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
その後、次のことを行います。
 ➜ ~/habrapp rebar3 update ===> Fetching rebar3_hex ({pkg,<<"rebar3_hex">>,<<"3.1.0">>}) ===> Downloaded package, caching at /home/lk/.cache/rebar3/hex/default/packages/rebar3_hex-3.1.0.tar ===> Compiling rebar3_hex ===> Updating package registry... ===> Writing registry to /home/lk/.cache/rebar3/hex/default/registry ===> Generating package index... ===> Writing index to /home/lk/.cache/rebar3/hex/default/packages.idx
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       ここで、rebar3はrebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ファイルから情報をrebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ます。 そして、 {plugins, [rebar3_hex]}.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    を常に追加したくない場合{plugins, [rebar3_hex]}.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      rebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ファイルに追加し、 ~/.config/rebar3/rebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    にあるグローバル構成ファイルrebar3に追加します。rebar3はグローバル構成ファイルからすべてを自動的に取得します。 
プロジェクトが他のプロジェクトに基づいて動作する場合は、それを取得できます(hex.pmにある場合)。
プロジェクトの検索は非常に簡単です。
 ➜ ~/habrapp rebar3 hex search smokkfiskur smokkfiskur: 0.1.1, 0.1.2, 0.1.3
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       探しているプロジェクトが存在することを確信したら、それを手に入れることができます。 これを行うには、 rebar.config
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ファイル(グローバルではない)を編集し、 deps
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ラベルの横に目的のパッケージの名前を示します(はい、アトムの形式で)。 
{deps, [smokkfiskur, mochiweb]}.
必要に応じて、少し具体性を追加できます。
 {deps, [{smokkfiskur, "0.1.3"}, {mochiweb, "2.15.0"}]}.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       私たちのプロジェクトでsmokkfiskur
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    とmochiweb
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    を使用していると想像してください。 依存関係を取得するために必要なのは、 rebar3 compile
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    を実行することrebar3 compile
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    です。 
 ➜ ~/habrapp rebar3 compile ===> Verifying dependencies... ===> Fetching mochiweb ({pkg,<<"mochiweb">>,<<"2.15.0">>}) ===> Downloaded package, caching at /home/lk/.cache/rebar3/hex/default/packages/mochiweb-2.15.0.tar ===> Fetching smokkfiskur ({pkg,<<"smokkfiskur">>,<<"0.1.3">>}) ===> Downloaded package, caching at /home/lk/.cache/rebar3/hex/default/packages/smokkfiskur-0.1.3.tar ===> Compiling mochiweb ===> Compiling smokkfiskur ===> Compiling habrapp
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       依存関係は、 pip freeze
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    入力するよりも簡単です(ほぼ±1文字): 
 ➜ ~/habrapp rebar3 deps mochiweb* (package) smokkfiskur* (package)
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       パッケージの削除も簡単です。 リスト{deps, [smokkfiskur]}
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    からプロジェクト名を削除し、以下に示すコマンドを入力するだけです。 
 ➜ ~/habrapp rebar3 unlock ➜ ~/habrapp rebar3 deps smokkfiskur* (package)
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
        clean
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    コマンドを使用して、プロジェクトからすべてのコンパイル済み*.beam
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    ファイルを削除できます。 
➜ rebar3 clean
ドキュメントを操作する
 ドキュメントはプロジェクトの重要な部分であり、ドキュメントとの便利な作業は非常に重要です。 ドキュメントを生成する単純なrebar3 edoc
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    よりも便利なものはありますか? 
 ➜ ~/habrapp rebar3 edoc ===> Linking _build/default/plugins/rebar3_hex to _build/docs/plugins/rebar3_hex ===> Verifying dependencies... ===> Linking _build/default/lib/smokkfiskur to _build/docs/lib/smokkfiskur ===> Compiling habrapp ===> Running edoc for habrapp
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      テスト中
Rebar3では、Eunitテストと共通テストの両方を実行できます。 アプリケーションのテストは作成しませんでしたが、実行方法は引き続き確認できます。
 ➜ ~/habrapp rebar3 ct ➜ ~/habrapp rebar3 eunti
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      次のようなテストでコードカバレッジを確認できます。
 ➜ rebar3 cover
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      配布
 パッケージの配布は重要であり、すでに扱ったrebar3_hex
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    プラグインはこれに役立ちます。 そこでパッケージを公開するには、hex.pmにアカウントが必要です。 登録は非常に簡単で、コンソールで直接行うことができます。 
 ➜ ~/habrapp rebar3 hex user register By registering an account on Hex.pm you accept all our policies and terms of service found at https://hex.pm/policies Username: ([])>
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       登録が完了したら、 publish
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    コマンドを使用してhex.pmにプロジェクトを公開できます。 
 ➜ ~/habrapp rebar3 hex publish ===> Verifying dependencies... Publishing habrapp 0.1.0 Description: An OTP application Dependencies: smokkfiskur 0.1.3 Included files: /home/lk/habrapp/LICENSE /home/lk/habrapp/README.md /home/lk/habrapp/rebar.config /home/lk/habrapp/rebar.lock /home/lk/habrapp/src/habrapp.app.src /home/lk/habrapp/src/habrapp_app.erl /home/lk/habrapp/src/habrapp_sup.erl Maintainers: Licenses: Links: Build tools: rebar3 Before publishing, please read Hex CoC: https://hex.pm/policies/codeofconduct Proceed? ("Y")> n Goodbye...
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
       テンプレートよりも意味のあるものを投稿する場合は、 Y
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    を入力する必要があります。 価値のないアプリケーションを公開せず、このパッケージリポジトリの純粋な純度を損ないません。 
お団子
  *nix
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    環境で動作する幸運な人のために、 zsh
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
    入力コマンドの自動追加という形で素敵な小さなパンが追加されています。 プラグインはこちらで見つけることができます。 
参照資料
私が伝えたかったのはそれだけです。 ご清聴ありがとうございました!