versionタグなしが許されない点に注意が必要

m2eclipseの最新版を入れて使っていると、依存ライブラリを取ってこなかったりソースフォルダの設定が消えたり、と不可解な動作をしてハマったのでメモ。

以下のような状況のときに起きる。
たとえば、
pom.xml

    <extensions>
     <extension>
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-webdav</artifactId>
     </extension>
   </extensions>

こんな箇所があった場合にm2eclipseがエラーを出してそれ以降の処理が続行されない。かつ、Problemビューには出ない、という事態に遭遇した。

こうなると、たとえばソースフォルダをupdateするとすべて消えてしまうし、依存ライブラリが入っているはずのコンテナは空っぽだし、と上述の通りなかなか不可解な事態に陥って混乱する。

解決策としてはちゃんと<version>タグを明示的に指定すること。コンソールにもその旨は出力されているので注意深ければ気付ける*1

どういうときにハマるか、というと、たとえば、Maven2DeployToRepoRemoteWithWebDAV - SeasarWikiあたりを見ると、version指定がされていないのでこのままコピペとかするとヘンな動作をするかもしれない。コマンドライン上で

c:\>mvn deploy

とかする分にはちゃんと通るので「あれ?あれ?」となってしまうかもしれない。ひょっとしてm2eclipseユーザーには常識?

*1:私は2時間ほど唸っていたのだけど