Mavenプラグインドキュメント

書いた。これとか。ひとまず、0.1.0-SNAPSHOTなるバージョンの Maven DBFlute Plugin の jar を S2 のスナップショットの Maven リポジトリに入れてあるので、使えると思います(でも、まだ、Windows で試してない…)。使い方は簡単で、DBFlute を使いたいプロジェクトの pom.xml に

...
<build>
<plugins>
...
<plugin>
<groupId>org.seasar.dbflute</groupId>
<artifactId>maven-dbflute-plugin</artifactId>
<version>0.1.0-SNAPSHOT</version>
<configuration>
<dbfluteVersion>0.9.4.1-RC2</dbfluteVersion>
<dbPackage>sample.app.db</dbPackage>
<schemaName>sample</schemaName>
</configuration>
</plugin>
...
</plugins>
</build>
...

と書いておけば良い。あとは、mvn dbflute:~ ゴールでバシバシやる。まぁ、基本的には、

mvn dbflute:download
mvn dbflute:create-client
mvn dbflute:jdbc
mvn dbflute:generate

で良いだろう(事前にDBが構築してあるのと、H2 以外の利用の場合は、configuration 要素以下に設定必要)。

この他には、generate-crud ゴールも作ってある(まだ、実験的な感もあるけど、質はあげていきたいところ)。これを実行すると、各テーブルに関するSAStruts用のページを作成してくれるはず。一応、カスタマイズしやすいようにと思い、Bs~クラスみたいなのがいて、基本処理が記述してあり、必要な変更はその実体クラスの方に記述する感じ。これで、generate-crud しなおしても、カスタマイズ部分は維持されることを想定している。

そんな感じのMavenプラグインで、Mavenプラグイン自体の開発については、若干模索ぎみにやったせいか、綺麗なコードではないです(TT) 各ゴールに設定できるパラメータを見れば分かるとおり、全ゴールで共通になっていたりと、改善すべき箇所はあります。ドキュメントの方もPluginプラグインから自動生成したやつのコピペなので、JavaDoc の方を綺麗に書かないと、内容がいまいちな感じになります(これも要改善だな)。

そんな感じですが、興味がありましたらご利用ください~

追記: Maven DBFlute Plugin を利用するためには、以下のリポジトリ設定も pom.xml に必要かと。

<pluginRepositories>
<pluginRepository>
<id>maven.seasar.org</id>
<name>The Seasar Foundation Maven2 Repository</name>
<url>http://maven.seasar.org/maven2</url>
</pluginRepository>
<pluginRepository>
<id>maven-snapshot.seasar.org</id>
<name>The Seasar Foundation Maven2 Repository</name>
<url>http://maven.seasar.org/maven2-snapshot</url>
</pluginRepository>
</pluginRepositories>

M2のゴールを増やす

ダウンロード、セットアップ、CRUDなページ作成のゴールくらいを作ればいいやという予定だったのだけど、セットアップを作っていたら、ここまできたら、jdbc.sh とかもすべて mvn コマンドでやればいいんじゃない、という感じになり、ゴールを追加。そんなわけで、mvn コマンドですべてを解決できるかと。簡単にmaven-dbflute-pluginのゴールをまとめると

download
指定されたバージョンをダウンロードして、展開します。
create-client
ダウンロードした、指定したバージョンのdbflute_dfclient.zipを展開して、データベースのパラメータなどを更新します。
jdbc
jdbc.[sh|bat]を実行します。
generate
generate.[sh|bat]を実行します。
doc
doc.[sh|bat]を実行します。
outside-sql-test
outside-sql-test.[sh|bat]を実行します。
replace-schema
replace-schema.[sh|bat]を実行します。
sql2entity
sql2entity.[sh|bat]を実行します。
generate-crud
テーブルごとにSAStrutsのCRUDページを生成します。

という感じで、これらのゴールを mvn dbflute:~ で実行します。

まだ、これからやらなきゃならないことは、手順とか確認してないのだけど SNAPSHOT の jar をどこに置くかと、ドキュメント作成。ドキュメントは、SAStrutsのブランクをベースにまとめようかと。

当初は単純なものを作る感じだったのだけど、いろいろとやってしまったな~。というわけで、まだ作業が続く…。

ひとまず、maven-dbflute-pluginをコミット

まだ、調整していくけど、ひとまず、コミット(データが消えたりすると困るから)。現状は、downloadとgenerate-crudゴールの2つがあるのだけど、setupゴールを追加して、dbflute_dfclient.zipを展開するゴールも加えておきたいところ。ドキュメントも書いていかなきゃならないな。という感じで、もうちょっと時間が必要。