8

jetty完全に fromによって引き起こされたファイル ロックの問題を修正する方法はありますgradleか?

明確化: jetty を実行してGradle Jetty プラグイン
を使用すると、Windows の使用時に静的リソース ファイル (html、css、js など) がロックされます。Windows でロックされたファイルで問題の説明を確認できます。gradle jettyRun,

同じ記事では、それを修正する方法についても説明しています。基本的に、次のいずれかを行う必要があります。

  1. ファイル マップド バッファの使用を無効にする
  2. NIO をまったく使用しないでください。

どちらの場合も、jetty 固有の構成ファイルをプロジェクトに追加する必要がありますが、これはやりたくありません。jetty プラグインは便宜上のみ使用され、その構成を維持するのは適切ではありません。

ローカル マシンでのテストに NIO は必要ないため、どのソリューションでも機能します。

編集:

useFileMappedBuffer今のところ、私はあなたが に設定したオプションを選びましたfalse。これを行う方法は次のとおりです。

  1. webdefault.xmlあなたのようなパスを指定してください

    [jettyRun, jettyRunWar,jettyStop]*.with {
        //other configs
    
        webDefaultXml = file("${project.webAppDir}/WEB-INF/jetty-webdefault.xml")
    }
    
  2. jetty の最新の 6.1.x ディストリビューションからファイルを取得します。このプラグインは、jetty 6 のみをサポートしているようですjetty-6.1.26\etc\webdefault.xml。明らかに、前の手順で指定したパスに配置する必要があります。

  3. デフォルトのサーブレット初期化パラメータuseFileMappedBufferを次のように変更しますfalse

プラグインに埋め込まれた桟橋を使用するオプションを調査します。

4

2 に答える 2

3

より良い代替手段と思われるプラグインを見つけました:

https://github.com/akhikhl/gretty

ポジティブ

  • ファイルをロックせず、ホット デプロイメントをサポートします(Gretty が「高速リロード」と呼んでいるものでも)
  • Gretty 1.2.0 は Jetty 9.2.9.v20150224 を使用します。Gradle 2.2.1 が提供する Jetty プラグインは、Jetty 6.1.25 を使用します。
  • 同じタスクが使用されますjettyRun(または、より単純にrun)。
  • 「サーバーを停止するには何かキーを押してください」。Jetty プラグインでは、CTRL+C の次に Y が必要でした。
  • 私が知る限り、ドキュメントは素晴らしいようです(Gradleはそれほどではありません)

ネガ

  • ビルドスクリプトのクラスパスの依存関係をセットアップするか、プラグインを URL から直接適用するための、もう少し肥大化したコード ( doc を参照)
  • 明示的にしないと、Gretty がクラッシュしますapply plugin: 'war'(Jetty プラグインは War プラグインを拡張します)。
于 2015-03-27T16:22:53.153 に答える