0

Jetty 的热部署很棒。我每天都通过 jetty:run 使用它并节省了我的一天。

但。

它不会部署我在 webapp 中创建的新文件(src/main/webapp/WEB-INF/jsp 中的 JSP)。它只会重新部署修改过的文件。

有谁知道让Jetty热部署新文件而不重新启动它的方法?

这是我目前的配置:

<configuration>
    <scanIntervalSeconds>5</scanIntervalSeconds>
    <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>
    <webAppConfig>
        <defaultsDescriptor>${basedir}/src/main/config/webdefault.xml</defaultsDescriptor>
        <contextPath>/${project.artifactId}</contextPath>
        <jettyEnvXml>${project.build.directory}/jetty/jetty-env.xml</jettyEnvXml>
    </webAppConfig>
</configuration>
4

2 回答 2

0

使用 jsp 的“正常”配置,当添加/更改 jsp 时,jetty 不需要热重新部署上下文。Jasper jsp 容器在您点击其 url而无需重新启动 context时使新的/修改的 jsp 可用。

但是,在您的情况下,您已将 jsps 放在 WEB-INF 中,这是一个禁止提供服务的位置。为了让 jsps 能够正常工作,您必须进行某种服务器端重定向。你没有发布你的配置,所以我不确定你的重定向解决方案是什么。

我可以告诉你,jetty-maven-plugin扫描WEB-INF 中特定文件的更改(这里是一个旧文档页面的链接,它仍然相当准确:http ://docs.codehaus.org/display/JETTY /which+files+are+scanned+by+the+Jetty+Maven+Plugin)。因此,如果您的重定向设置需要在将新 jsps 放入 WEB-INF 时重新部署上下文,那么 Ayub Malik 之前使用额外的 scanTargets 给出的答案是有效的。

问候简

于 2013-08-01T03:07:28.027 回答
0

您可以尝试在上面的配置中添加 scanTarget 参数。

<scanTargets>
    <scanTarget>src/main/webapp/WEB-INF/jsp</scanTarget>
</scanTargets>
于 2013-07-31T14:44:44.477 回答