Spring2.5はじめました

Springはあまりチェックしていなかったのですが、勉強会で扱っている本の例がSpringなので思い出しながら・・・。
Spring2.5ではSeasar2のSmart Deployに近い設定レスな使い方もできるという話で折角なので調査。
Spring2.5 + Hibernate + Velocity という組み合わせで試しています。

Maven2

とりあえずはプロジェクトの雛形を、と思ったのですが、これが結構面倒。
Maven2でプロジェクトを作成する時、最近のバージョンでは次のようにできます。

mvn archetype:generate

この後にずらずらと色々なテンプレートが表示されるので、選択して、GroupIdやartifactIdを入力して、雛形を作成します。
色々なテンプレートがありますが、特に便利そうなのがappfuseというやつで、フルスタックで色々なフレームワークを入れてくれます。
ただ、ちょっと試すには詰め込みすぎなのでいまいちです。
逆にMaven2の標準テンプレートだとシンプルすぎて自動生成しても仕方ないような気もします。

そんなわけで結局はpom.xmlを自前で組み立てていく事になりました。
この辺り、ちょうど良い具合のテンプレートを組んでくれるDoltengは便利です。
archetype:generateで使用できるテンプレートを生成してしまうと便利になりそうです。

NoSuchFieldError: IS_JAVA_1_6

簡単にValidatorやらなにやらを作成していくと不思議なエラーに遭遇しました。
ググってみると、どうもCommons-Lang2.1が混入していると発生するタイプの問題だそうです。

If you add an explicit dependency on commons-lang-2.1 to your pom.xml,
it should fix any transitive dependency issues.

http://www.mail-archive.com/users@appfuse.dev.java.net/msg06761.html

Maven2に依存関係は任せていたので、調査してみるとVelocityがCommons-lang2.1に依存している模様。
こんな感じで除外設定をすれば、エラーは防げました。


org.apache.velocity
velocity
1.5


commons-lang
commons-lang