ある文字列きたら、キー入力を得て、y を返そうかと思ったら、Linux だと、y or n の文字列がくる前に入力待ちになっているみたいで無理っぽい。というわけで、事前にキー入力で y or n をチェックして、毎回 y を渡すように変更で対応。こんな対話的な自動入力をやると、expectj とか思い出すな・・・。
カテゴリー: Seasar
MavenプラグインのWindowsで動作確認
Windows 環境で動作確認をしました。バッチの呼び出しとファイルセパレータの置換がうまく動いてなかった・・・。java からのバッチ呼び出しでスタンダードなやりかたはあるのだろうか。cmd.exe /c jdbc.bat みたいな感じで呼び出しているけど、これだと、バッチの終わりで入力待ちになるので、InputStreamが待ちに状態になる。仕方がないので、一行読んだら、改行をOutputStreamで送って、入力待ちを回避した。そんな感じで、Windows でも動くはずですので、どうぞ、ご利用ください~。
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>