GradleJetty插件锁定文件
有没有办法完全从GradleJetty插件锁定文件,jetty,gradle,Jetty,Gradle,有没有办法完全从gradle解决由jetty引起的文件锁定问题 一些澄清: 通过运行gradle jettyRun使用时,jetty会在使用Windows时锁定静态资源文件(html、css、js等)。 您可以在中看到问题的描述 同一篇文章还介绍了如何解决这个问题。基本上,你必须: 禁用文件映射缓冲区的使用 根本不用NIO 这两件事都需要向项目中添加一些特定于jetty的配置文件,我不想这样做-jetty插件只是为了方便而使用,维护配置是不对的 我不需要NIO在本地机器上进行测试,所以任何解决方
gradle
解决由jetty
引起的文件锁定问题
一些澄清:通过运行
gradle jettyRun使用时,
jetty会在使用Windows时锁定静态资源文件(html、css、js等)。
您可以在中看到问题的描述
同一篇文章还介绍了如何解决这个问题。基本上,你必须:
useFileMappedBuffer
设置为false
的选项。这是如何做到的:
webdefault.xml
的路径,如
[jettyRun, jettyRunWar,jettyStop]*.with {
//other configs
webDefaultXml = file("${project.webAppDir}/WEB-INF/jetty-webdefault.xml")
}
jetty-6.1.26\etc\webdefault.xml
上对其进行本地化。显然,必须将其放置在上一步指定的路径上
useFileMappedBuffer
更改为false
我将研究使用嵌入式jetty而不是插件的选项。Kiril回答了他自己的问题,非常感谢。您应该遵循Kiril的说明,这将帮助您找到合适的
webdefault.xml
要了解Gradle启动Jetty的版本,请执行
gradle jettyRun -i
你会看到这样的情况:
...
Tmp directory = determined at runtime
Web defaults = org/mortbay/jetty/webapp/webdefault.xml
Web overrides = none
Webapp directory = C:\dev\my-project\src\main\webapp
Starting jetty 6.1.25 ...
jetty-6.1.25
...
我花了一些时间才找到Jetty 6.1.25的副本,因为它不再列在Jetty下载页面上(甚至不在归档部分!)
然后,您可以从这里获取webdefault.xml
的相应副本,根据需要调整版本号:
我发现一个插件似乎是更好的选择: 积极的
- 不会锁定文件并支持(甚至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
- 据我所知,这部电影看起来很棒(不是那么棒)
- 要设置buildscript的类路径依赖关系或直接从URL()应用插件,代码要稍微臃肿一些
- Gretty崩溃,除非您明确地
(Jetty插件扩展了war插件)应用插件:“war”