今回は Maven2 で Groovy コードを実行する方法を紹介(一覧)。 「Executing Groovy Code」を参考にしてます。
前々回と同じように、GMaven のサポートのせいで Groovy 1.7 以降を使うにはいろいろ設定が必要です。 とはいっても、ここで Groovy 1.6 を使ってもプロジェクトや成果物にはあまり関係がないので、特に必要がなければ Groovy 1.7 を使う必要はないかも。
Groovy 1.6 以前を使用する
ここで見ていくのは
- pom.xml
- 実行のためのコマンド
- 実行結果
です。
★pom.xml
Maven2 で Groovy コードを実行する方法はいくつかあるようですが、今回は単独のゴールで Groovy コードを実行する方法を見ていきます。
実行したいコードは GMaven のプラグイン設定の中の configuration/source 要素に書きます。 ここで書きたい Groovy コードは
println 'Hello, GMaven World !'
とします。 pom.xml は以下のようになります:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.2</version> <configuration> <source> println 'Hello, GMaven World !' </source> </configuration> </plugin> </plugins> </build> </project>
XML 文書としてエスケープが必要な文字(<, >, &)が何度も出てくる場合は、CDATA セクション(<![CDATA[...]]>)を使うといいでしょう。
★実行のためのコマンド
上記の pom.xml で Groovy コードを実行するためには、「groovy:execute」ゴールを実行します。 具体的には、以下のコマンド
mvn groovy:execute
を実行するだけです。
★実行結果
実行結果は以下の通り:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - org.sample:sample:jar:1.0-SNAPSHOT
[INFO] task-segment: [groovy:execute]
[INFO] ------------------------------------------------------------------------
[INFO] [groovy:execute {execution: default-cli}]
Hello, GMaven World !
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12 seconds
[INFO] Finished at: Sat Apr 10 04:13:11 JST 2010
[INFO] Final Memory: 10M/24M
[INFO] ------------------------------------------------------------------------
Groovy 1.7
次は Groovy 1.7 を使うバージョン。 ただし、実行するためのコマンドも実行結果も Groovy 1.6 の場合と同じなので、ここでは pom.xml の内容のみ見ていきます。
pom.xml の内容はこんな感じ:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>1.0-SNAPSHOT</version> <properties> <groovyVersion>1.7.0</groovyVersion> <gmavenVersion>1.2</gmavenVersion> <groovyProviderSelection>1.7</groovyProviderSelection> <antVersion>1.8.0</antVersion> </properties> <build> <plugins> <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>${gmavenVersion}</version> <configuration> <providerSelection>${groovyProviderSelection}</providerSelection> <source> println 'Hello, GMaven World !' </source> </configuration> <dependencies> <dependency> <groupId>org.codehaus.gmaven.runtime</groupId> <artifactId>gmaven-runtime-${groovyProviderSelection}</artifactId> <version>${gmavenVersion}</version> <exclusions> <exclusion> <!-- gmaven runtime has a dependency on groovy-all v1.6 but we want 1.7.0 --> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>${groovyVersion}</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>${antVersion}</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
ここでの設定の多くは、前々回行った、「グループ ID の変更」や「groovy-runtime, groovy-all のバージョンなどの設定」ですが、それに加えて「Apache Ant への依存性 を付加」しないといけない所が注意点でしょうか。
プロパティ(project/properties/...)をいくつか定義してますが、これらは自己満足のレベルです。 普通に数値を埋め込んだ方が見やすいかも。
- 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 146回
- この商品を含むブログ (121件) を見る
Apache Maven 2.0入門 Java・オープンソース・ビルドツール
- 作者: 野瀬直樹,横田健彦
- 出版社/メーカー: 技術評論社
- 発売日: 2006/12/13
- メディア: 大型本
- 購入: 8人 クリック: 141回
- この商品を含むブログ (97件) を見る