Trolling with Java Web Frameworks

TSS.comより。これを読んで大笑いできるほどの英語力は持ち合わせていないけど,ニュアンスはわかるよ。


JSFが何言うにしてもカスタムタグが付いているのにワロタ。:-D

Facelets: JSF! How many times do I have to tell you never to speak to the media directly? As your publicist, I do all the talking!

JSF (hanging his head): <f:verbatim>Sorry..</f:verbatim>


TSS.comはTSS.comで「Differences between Struts and JSF?」なんて燃料投下するから,コメント欄がエライことになっている。コメ欄つらつら見てるが,好みは人それぞれよのう。GWTが人気あって,ちょっと意外だった。
ちなみに,あたしはClick Frameworkのコンセプトや哲学が好きス。
#Click本体は,ちょっと使い方忘れちゃったので,今はそんなに好きではない。:-P


ps.
みんなStrutsJSFが嫌いなんだなぁ。JSFはともかく,Strutsから色んな事を教えてもらった身の上からすると,今のStrutsの評価は切ないものがあるねぇ。もういい年寄りなんだから引導渡してあげればいいのに。
#「JavaでWeb=Struts」の構図は根強いからなぁ。

iBATIS Pluginが神がかっている

JPAいいじゃん」って言ったのどいつ?


それはさておき,iBatisに手を出してみたのはiBATIS Pluginがスゴそうだったから。で,実際使ってみたらホントにスゴかった。どうスゴいかは,User Guideで確認してね。
iBATIS Plugin User Guide - Google ドキュメント


特に度肝を抜かれたのは,この2つ(4つ?)。

  • SqlMap-XMLでのSQLのコード補完とSQLの自動生成
  • Javaコード中でのコード補完とSqlMapへのリンク付け


さすが,コンテストにエントリするくらいのプラグインだけはある。てなわけで,iBatisもいいね。:-P

AntForm

Antから呼び出せるGUIフォーム。これを使うことでAntのスクリプトにちょいとインタラクティブ(メニューとかウィザードみたいなの)な機能を付加できる。
ただ,残念なことにAnt1.7では動かない(Ant1.6系だと大丈夫)。


スクリプトであれこれ自動化してみると,ある場面ではどうしても対話的に進めなければならなくて,やむを得ずスクリプト化を断念したりもしたけど,そんなときこうゆうのがあると便利に使えそう。


「ある場面」ってなによ?と言えば,リリース作業ちゅうかデプロイ作業っていうか,リリースモジュール作った後の作業なんかが,それに当たる。なかなかどうして,ファイル置いておしまいってワケにはいかず,どうしてもちまちました手順が残るので,完全自動化って難しい。なんで,せめてウィザードみたいなの作って作業をアシストできたら,いくらかはマシかなぁなど思ってる。


さらに言えば,この手の作業(デプロイやリリース)は,リハーサルとかやり直しとかのセーフガードが無いと完全とは言えないので,もうちっと探求が要るだろうな。

ゲームで極める シェルスクリプトスーパーテクニック

上のエントリ同様,シェルスクリプトにだってインタラクティブ性はあってもいいよね,と思いながら立ち読みしてた。


この本読むと,遥か昔のパソ通時代にエスケープシーケンスでアニメ組んでたのを思い出す。
最後にカーソル有りのエスケープシーケンス入れ忘れて,よくひんしゅく買ってたなぁ。:-P

ゲームで極める シェルスクリプトスーパーテクニック

ゲームで極める シェルスクリプトスーパーテクニック

Maven Integrationを試す(その2)

えー,こんなところで妥協することとしましたヨ。

1.IDEAでふつーにプロジェクトを作る(Webファセットとかはご自由に)。
2.POM作って,IDEAと連携させる

プロジェクトができたら,こんなPOMを作る。groupIdやartifactIdはテキトウでいい。どっちにしろ,Mavenでビルドとかしないし。

<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>com.example</groupId>
  <artifactId>MavenTest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>MavenTest</name>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
  </build>
</project>

ポイントは,この2つくらい。

  • packagingタグを書かない(まかり間違って,warとか書くとWebファセットが影響受ける)。
  • buildタグのsourceDirectoryやtestSourceDirectoryは,IDEAのそれにあわせる(いや,べつにMaven風でもいいんだけどさ)。


POMが出来上がると,自動的にMavenプロジェクトと認識するので,Tool WindowのMaven projectsから,IDEAの連携方法を設定する(ツールバーの"Maven settings"を選ぶ)。


Maven Integrationダイアログで,IDEAとの連携方法を設定するんで次のように設定しておく。

  • "Create regular IntelliJ IDEA modules (will require manual synchronization with Maven projects)"を選んで,手動連携にする。
  • "Use Maven output directories"のチェックを外す(これは好みの問題)。
3.POMの内容をプロジェクトに反映させる

そのまえに,dependenciesタグ書いといてね。


手動連携なんで,ツールバーの"Synchronize with Maven projects"を押す。そすっと,Mavenが動いて,いろいろやってくれる(って,ライブラリのダウンロードだけど)。


あとは,dependenciesタグを書き換えるたびに,同じように同期とるだけじゃ。
ツールバーの"Synchronize with Maven projects"の隣にある"Download artifacts"を押すと,ソースやらJavadocやらをダウンロードしてくれるよ(ちゃんとIDEAのライブラリにも設定してくれる)。


注意事項がひとつだけ。


POMの内容のほうがProject Settingsより強いので,Project Settingsに直接ライブラリを設定してもムダだよ。POMと同期取ると消えて無くなるんで,Project SettingsのSourcesタブとDependenciesタブは,POMに任せとくのが吉。
#ライブラリの設定がひととおり済んだのなら,POMを消しちゃっても問題はないみたい。


これでライブラリ設定の手間はだいぶ減ったんだけど,やっぱりPON(dependencies)の入力支援が無いと,今ひとつだなぁ。:-(
真面目にMaven Repo Searchみたいなの作ろうかな...