uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

GrapeとGrabとIvyの関係

分かりにくいので整理しておく。
つまりだ、

  • Grape - Groovy組み込みのJAR自動ダウンロード・管理機構。JARの依存関係を考慮して連鎖的にダウンロードしてくれたり、複数のバージョンのJARを同時にインストールし区別して使うことができる。GroovyからGrapeの機能を利用するには、特定のメソッド(Grape#grab())を呼んだり、アノテーション(@Grab)を指定する。するとそのモジュールに含まれるJARがクラスパスに入ってくる。Apache Ivyをもとにしている。
  • grape(s) - Grapeで管理されるモジュールの単位。実体はIvyのモジュールでさらにその実体はMavenのモジュール? ここらへんはよくわからない。物理実体としては管理用のメタファイル+JARファイル。
  • grape - Grapeのモジュールを管理するためのコマンド。Groovy配布物に付属する。あまり使わない。インストールしたgrapeを削除したりリストするときに使うかな。
  • Grab - Groovy中で必要なモジュールを指定するためのアノテーション。@Grab(..)という風に記述する。
  • grab() - Groovy中で必要なモジュールを指定するためのメソッド。Grape#grab()。
  • Apache Ivy - Mavenの機能からビルド機能を除去し、モジュール管理に特化させたもの。

誤解あるかな。