有没有办法解决jetty完全由gradle?引起的文件锁定问题?
一些说明:
当使用Gradle Jetty插件时,通过运行gradle jettyRun,jetty会导致在使用Windows时锁定静态资源文件(html,css,js等).您可以在Windows上锁定的文件中看到问题的描述.
同一篇文章还介绍了如何解决这个问题.基本上你必须要么:
这两件事都需要在项目中添加一些特定于码头的配置文件,我不想这样做 - jetty插件仅用于方便,并且维护配置感觉不对.
我不需要NIO在本地机器上进行测试,因此任何解决方案都可以.
编辑:
现在,我在挑你设置的选项useFileMappedBuffer来false.这是怎么做的:
指定您webdefault.xml喜欢的路径
[jettyRun, jettyRunWar,jettyStop]*.with {
//other configs
webDefaultXml = file("${project.webAppDir}/WEB-INF/jetty-webdefault.xml")
}
Run Code Online (Sandbox Code Playgroud)从最新的6.1.x jetty发行版中获取文件.该插件似乎只支持jetty 6.你可以将它本地化jetty-6.1.26\etc\webdefault.xml.显然,您必须将它放在上一步指定的路径上.
useFileMappedBuffer为false我将研究使用嵌入式插件的选项.
基里尔回答了他自己的问题,非常感谢。您应该遵循 Kiril 的说明,这将帮助您找到合适的webdefault.xml.
要找出 Gradle 启动的 Jetty 版本,请执行
gradle jettyRun -i
Run Code Online (Sandbox Code Playgroud)
你会看到这样的东西:
...
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
...
Run Code Online (Sandbox Code Playgroud)
我花了一段时间才找到 Jetty 6.1.25 的副本,因为它不再列在 Jetty 下载页面上(甚至不在存档部分中!)。
然后,您可以从此处获取适当的副本webdefault.xml,根据您的需要调整版本号:
| 归档时间: |
|
| 查看次数: |
1774 次 |
| 最近记录: |