m2eclipse+Tomcatプラグインで開発していると、m2eclipseのMaven2 Dependenciesの参照jarが消える時がある。

m2eclipseを使うと、ビルドパスにMaven2 Dependenciesってのが指定できて、必要なjarのパス(ローカルリポジトリへのパス)がこれで設定されるて便利なのですが、たまに一部のjarに対する参照が消えてしまい、コンパイルエラーという現象が発生します。

どうも、work配下にあるpom.xmlのjarが除外されてしまうようです。
Tomcat プラグインだと、プロジェクトの直下にworkというTomcatJSP中間ファイルやjar内のpropertyファイルを置くディレクトリが作成され、そこにはmavenで作ったjarが展開された際に、そのjarに含まれるpom.xmlも配置されます。
そして、m2eclipseの Maven2 Dependenciesは、プロジェクト内にあるpom.xmlで作られるjarは全て除外するようで、Tomcatで展開されたjarが除外されてしまったようです。(提供されているjarがmavenで作られていなければ、pom.xmlは含まれないので、問題にはならない)


Tomcatをちゃんと起動/停止という手順を踏んでいれば、work配下にjarから展開されたファイルは残らないので、こういった現象になることは少ないのですが、たまにTomcatを強制終了したりして、その後にm2eclipseでなんか実行ってことすると、はまります。

一旦この現象に陥ると、work直下を削除して、m2eclipseでcleanを実行とかしても解消せず、一旦Eclipseを再起動して、target 配下を削除(またはEclipseでプロジェクトをクリーン)した後、m2eclipseでcleanとかやらないと元に戻りませんでした。