MavenのローカルリポジトリをGroovyから参照する

MavenのローカルリポジトリをGroovyから参照する方法です。
~/.groovy/grapeConfig.xmlを作成して、以下のように書いておけばいいようです。

<ivysettings>
  <settings defaultResolver="downloadGrapes" />
  <resolvers>
    <chain name="downloadGrapes">
      <ibiblio name="local" root="file:${user.home}/.m2/repository/" m2compatible="true" />
      <filesystem name="cachedGrapes">
        <ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml" />
        <artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
      </filesystem>
      <ibiblio name="codehaus" root="http://repository.codehaus.org/" m2compatible="true" />
      <ibiblio name="ibiblio" m2compatible="" />
      <ibiblio name="java.net2" root="http://download.java.net/maven/2/" m2compatible="true" />
    </chain>
  </resolvers>
</ivysettings>

使い方

例えばpom.xmlに次のdependencyが記述されていたとします。

  <dependency>
    <groupId>org.apache.mahout</groupId>
    <artifactId>mahout-core</artifactId>
    <version>0.4</version>
  </dependency>

これをGroovyから利用したかったら、ソースコードにこう書く。

@Grab(group='org.apache.mahout', module='mahout-core', version='0.4')

楽ちんですね。