jetty热部署

半兽人 发表于: 2016-03-25   最后更新时间: 2018-04-25 22:57:01  
{{totalSubscript}} 订阅, 11,153 游览

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>
更新于 2018-04-25

查看jetty更多相关的文章或提一个关于jetty的问题,也可以与我们一起分享文章