今更、maven 2.2.1とかないだろうって思われてしまうかも知れないが、世の中、使わざるを得ない場合もあるよね〜ってことで、maven 2.2.1ネタです。
Jersey 2.17 + Jettyを使ったアプリをmaven 2でビルドしようとすると、
jetty-parentが解決出来なくて通らないと思います。
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-servlet</artifactId>
<version>2.17</version>
</dependency>
原因
jetty-parentのpomを探しに行く先が変わっていて、HTTP 301が返されてしまうが、
maven 2.2.1では、デフォルトではroot pomのリダイレクトに対応していないためである。
ちなみに、Maven 3系では発生しない。(理由は後述)
解決策
Maven Wagon Provider HTTPを、Apache HTTP Clientによる実装が使われるようにする。
方法は、mvnコマンドの引数に
-Dmaven.wagon.provider.http=httpclient
を指定する。
※ Maven3系では、Apache HTTP ClientによるWagon Providerがデフォルトであるため、何もせずにjetty-parentが解決出来るわけですね。
参考
使うPOMに書いておけば、いちいち指定しなくても済むなんてことないかな…