gpt4 book ai didi

jetty - Gradle Jetty 插件锁定文件

转载 作者:行者123 更新时间:2023-12-04 08:36:48 33 4
gpt4 key购买 nike

有没有办法解决jetty引起的文件锁定问题?完全来自 gradle ?
一些澄清:
使用 Gradle Jetty plugin 时通过运行 gradle jettyRun, jetty 导致静态资源文件(html、css、js 等)在使用 Windows 时被锁定。
您可以在 Files locked on Windows 中看到问题的描述。 .
同一篇文章还介绍了如何解决该问题。基本上你必须:

  • 禁用文件映射缓冲区
  • 根本不使用NIO。

  • 这两件事都需要在项目中添加一些jetty特定的配置文件,我不想这样做——jetty插件只是为了方便而使用,维护它的配置感觉不太对。
    我不需要 NIO 在本地机器上进行测试,所以任何解决方案都有效。
    编辑:
    现在,我选择了您设置的选项 useFileMappedBufferfalse .这是如何做到的:
  • 指定您的 webdefault.xml 的路径喜欢
    [jettyRun, jettyRunWar,jettyStop]*.with {
    //other configs

    webDefaultXml = file("${project.webAppDir}/WEB-INF/jetty-webdefault.xml")
    }
  • 从 jetty 的最新 6.1.x 发行版获取文件。该插件似乎只支持 jetty 6。你可以在 jetty-6.1.26\etc\webdefault.xml 本地化它。 .显然,您必须将其放置在上一步指定的路径中。
  • 更改默认的 servlet init 参数 useFileMappedBufferfalse

  • 我将研究使用插件的嵌入式 jetty 的选项。

    最佳答案

    我发现一个插件似乎是一个更好的选择:
    https://github.com/akhikhl/gretty
    正能量

  • 不锁定您的文件 并支持hot deployment (甚至有些东西 Gretty 称之为“fast reload”)
  • Gretty 1.2.0 使用 Jetty 9.2.9.v20150224。 Gradle 2.2.1 提供的 Jetty 插件使用 Jetty 6.1.25。
  • 使用相同的任务 jettyRun (或更简单地说 run )。
  • “按任意键停止服务器”。 Jetty 插件需要 CTRL+C 然后是 Y。
  • 据我所知,documentation看起来很棒(Gradle's 没那么多)

  • 负数
  • 一些臃肿的代码来设置 buildscript 的类路径依赖项或直接从 URL ( see doc )
  • 应用插件
  • Gretty 崩溃,除非您明确 apply plugin: 'war' (Jetty 插件扩展了 War 插件)
  • 关于jetty - Gradle Jetty 插件锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11032342/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com