maven で s2jdbc-gen

pom.xml

pom.xmlmaven-antrun-plugin の設定を追加します。
ant への依存性と s2jdbc-gen-build.xml へのパスを指定し、実行するターゲット名は環境変数として受け取れるよう設定します。
また、s2jdbc-gen-build.xml にて maven クラスパスを参照できるよう、inheritRefs 属性に true を指定します。

(snip)
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                        <version>1.7.0</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <tasks>
                        <ant antfile="${basedir}/s2jdbc-gen-build.xml" inheritRefs="true">
                            <target name="${ant.target}" />
                        </ant>
                    </tasks>
                </configuration>
                <goals>
                    <goal>run</goal>
                </goals>
            </plugin>
        </plugins>
    </build>
(snip)

s2jdbc-gen そのものへの依存性も忘れずに追加します。ぼくが親切にこういうことを書くときは、忘れて痛い目を見たときです。

(snip)
        <dependency>
            <groupId>org.seasar.container</groupId>
            <artifactId>s2jdbc-gen</artifactId>
            <version>2.4.40</version>
        </dependency>
    </dependencies>
(snip)
s2jdbc-gen-build.xml

pom.xml と同様に、プロジェクトディレクトリ直下に s2jdbc-gen-build.xml を以下の内容で作成します。
taskdef では、maven クラスパスから s2jdbc-gen-task.properties を探してタスク定義として読み込むよう指定しています。

<?xml version="1.0"?>
<project name="s2jdbc-gen">
    <target name="init">
        <property name="version" value="latest" />
        <property name="classpathdir" value="target/classes" />
        <property name="rootpackagename" value="jp.forest.test" />
        <property name="entitypackagename" value="entity" />
        <property name="javafiledestdir" value="src/main/java" />
        <property name="testjavafiledestdir" value="src/test/java" />
        <property name="javafileencoding" value="UTF-8" />
        <property name="env" value="ut" />
        <property name="jdbcmanagername" value="jdbcManager" />
        <taskdef
            resource="s2jdbc-gen-task.properties"
            classpathref="maven.runtime.classpath"/>
    </target>
    <target name="gen-entity" depends="init">
        <gen-entity
            rootpackagename="${rootpackagename}"
            entitypackagename="${entitypackagename}"
            javafiledestdir="${javafiledestdir}"
            javafileencoding="${javafileencoding}"
            env="${env}"
            jdbcmanagername="${jdbcmanagername}"
            classpathref="maven.runtime.classpath" />
    </target>
</project>

同様にして gen-service タスクや gen-names タスクを追加することができます。
コアタスク、オプションタスクの一覧は s2jdbc-gen のドキュメント に記載されています。

実行

jdbc.dicon, s2jdbc.dicon にデータベース接続情報を設定したら、コマンドプロンプトより mvn antrun:run を実行します。

mvn antrun:run -Dant.target=gen-entity