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の機能からビルド機能を除去し、モジュール管理に特化させたもの。
誤解あるかな。