倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

GMaven 1.3 での pom.xml

GMaven 1.3がリリースされていたので使ってみた(参照 URL : Ben Tilford's Blog「GMaven 1.3 is out」)。

このバージョンでは

  • configuration 要素の sourceEncoding, source, target が動作するようになった
  • Java スタブコードで java.util.*, java.io.* 内のクラスがきちんと解決できるようになった
  • ソースコードのエンコーディングがデフォルトで ${project.build.sourceEncoding} から読まれるようになった

などが修正されてます(他にもありますが)。 詳しくは「GMaven 1.3 is out」などを参照のこと。

ただ、ジェネリクスを含む Groovy クラスから生成された Java スタブコードに、以前には出てなかったコンパイルエラーが報告されるようになってましたが・・・*1

まぁそれはともかく、プロジェクトのパラメータを

パラメータ名 パラメータ値
groupId org.sample
artifactId gmaven-1.3-sample
version 1.0-SNAPSHOT

として、GMaven 1.3 プロジェクトでの「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>gmaven-1.3-sample</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <groovy.version>1.7.4</groovy.version>
        <gmaven.version>1.3</gmaven.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>${groovy.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <version>${gmaven.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generateStubs</goal>
                            <goal>compile</goal>
                            <goal>generateTestStubs</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
     </build>
</project>

この GMaven プロジェクトでコンパイル等を実行する gmaven-plugin で使われる Groovy のバージョンは「1.7.4」です。 これは dependency 要素で設定されている groovy-all ライブラリとは無関係です(この groovy-all のバージョンを 1.7.3 などにしても、gmaven-plugin で使われる Groovy のバージョンは 1.7.4)。 Groovy 1.7.5 がリリースされてそれを使いたい場合は、「イカす達人 (2) : Maven2 流 Groovy プロジェクト with Groovy 1.7」で行ったような、gmaven-plugin の依存性の設定が必要そうです。 まぁ、今のところは気にすることでもありませんが。

P.S. 「pom.xml」のプラグインの設定に executions 要素を加えるのを忘れてましたm(_ _)m

Groovyイン・アクション

Groovyイン・アクション


Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール

*1:Groovy クラス自体にはジェネリクスを使う必要はあんまりなさそうだけど、ジェネリクスを使った Java クラス(インターフェース)を拡張(実装)して Groovy クラスを作ろうとすると、この手の例外が出てしまうことが・・・