Secret Staircase

jetty-maven-plugin が css や JavaScript をロックする場合の対策

Windows 限定ですが jetty で SelectChannelConnector を使うと css や JavaScript がロックされてしまって更新できなくなる問題、 useFileMappedBuffer 設定で回避するのが一般的だと思います。ただこの方法は jetty-webapp.jar から webdefault.xml を取り出さないといけないし、理想的には jetty のバージョンアップに追従しないといけないしでメンドウなんですよね。

こちらのサイトで SocketConnector を使う方法が紹介されていました。 http://false.ekta.is/2010/12/jettyrun-maven-plugin-file-locking-on-windows-a-better-way/

Jetty7 以降ではパッケージが変わっています。

設定例:

<connectors>
  <connector implementation="org.eclipse.jetty.server.bio.SocketConnector">
    <port>8080</port>
  </connector>
</connectors>

API リファレンスには "This Connector should only be used if NIO is not available." とありますが、開発環境ならこれでいいでしょう。 http://archive.eclipse.org/jetty/8.1.5.v20120716/apidocs/org/eclipse/jetty/server/bio/SocketConnector.html

そもそも css を更新したい状況 = 開発時だし、useFileMappedBuffer 使う方法よりこっちの方が断然良いと思います。