jetty让你通过监测目录变化将任意上下文或 web 应用程序的部署。如果你向目录中添加一个web应用程序
或上下文描述符
,jetty的DeploymentManager(DM)
部署新的上下文。如果你touch或更新上下文描述符,DM 停止、 重新配置和重新部署它的上下文。如果您删除一个上下文,DM停止它,并从服务器上删除。
你可以通过配置WebAppProvider
属性来控制这种行为:
monitoredDirName
该目录扫描可能部署的web应用(或部署描述符的XML文件)
scanInterval
提供 monitoredDirName 扫描之间的秒数。
值为 0 将禁用连续热部署扫描,只在启动时部署Web应用程序。
这个配置的默认位置在${jetty.home}/etc/jetty-deploy.xml
。
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call name="addBean">
<Arg>
<New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
<Set name="contexts">
<Ref refid="Contexts" />
</Set>
<Call name="setContextAttribute">
<Arg>org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</Arg>
<Arg>.*/servlet-api-[^/]*\.jar$</Arg>
</Call>
<Call id="webappprovider" name="addAppProvider">
<Arg>
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
<Set name="monitoredDirName"><Property name="jetty.home" default="." />/webapps</Set>
<Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/etc/webdefault.xml</Set>
<Set name="scanInterval">1</Set>
<Set name="extractWars">true</Set>
</New>
</Arg>
</Call>
</New>
</Arg>
</Call>
</Configure>