「同じ名前のクラス」にハマる

Eclipseのあるworkspace内にある2つのプロジェクトに
パッケージとクラスの名前が全く同じクラスが存在していていました。
(プロジェクトメンバーの誰かが、たまたま同じ名前のクラスを作ってしまった。)


それに気付かずに、私は別のクラスを編集していて、
変更が反映されないと、ハマってしまいました。。。


SMARTデプロイの規約に準拠したSeasar 2.4ベースのパッケージ構成だと、
commonプロジェクトをそれぞれが参照する
frontプロジェクトとadminプロジェクトは
3つとも同じルートパッケージ構成にした方が好ましいと考えています。


その理由は、frontプロジェクト(adminプロジェクト)と
commonプロジェクトのルートパッケージが同じであれば、
参照先のcommonプロジェクトのルートパッケージの直下にある
serviceやvalidatorパッケージなどの共通パッケージ上のクラスを
SMARTデプロイされている状態でそのまま利用できるからです。


ただし、今回のようにクラス名だけでなくパッケージ名まで
一緒になってしまう可能性があるので注意する必要ですね。
(レアケースだと思いますが、、、、。)


というか、責務が同じであれば、commonプロジェクトに移すことも
検討した方が良いと思います。逆に、責務が異なるのであれば、
名前を別々なものにすることも検討した方が良いと思う。