如何在 OpenLiberty 中为单个文件激活热部署?
How to activate hot-deployment in OpenLiberty for single files?
我已经安装了openLiberty 20.0.0,我想激活hotdeployment。
为此,我将 applicationMonitor 标签添加到 server.xml
<applicationMonitor updateTrigger="polled" pollingRate="500ms"
dropins="dropins" dropinsEnabled="true"/>
但这些似乎已经是默认设置了。所以也许我可以离开它。
我还添加了自动扩展功能
<applicationManager autoExpand="true" />
现在,当我将 .war 文件部署到 dropins 文件夹时,openLiberty 会自动识别应用程序并立即部署。目前为止一切正常。
但据我所知,还应该在我的 运行 应用程序中识别和更新单个源文件的热部署(例如 .html、.xhtml。)需要全面重新部署。
例如,如果我更改应用程序文件夹中的单个 jsf 文件
./dropins/myapplication.war/my-page.jsf
没有任何反应。
我错过了什么让 OpenLiberty 也能识别这个微小的文件更改?
简单回答:
删除 <applicationManager autoExpand="true" />
一切都会如您所愿。
更长的答案:
如果您的 server.xml 配置中有 <applicationManager autoExpand="true" />
,则应用程序将自动扩展到位于 ${server.config.dir}/apps/expanded/APP_NAME/
的新文件夹中
因此,当您 运行 应用程序时,您将拥有如下文件布局:
./server.xml
./dropins/myapplication.war
./apps/expanded/myapplication.war/my-page.jsf
./apps/expanded/myapplication.war/WEB-INF/classes/com/foo/SomeAppClass.class
"active" 组文件将是 apps/expanded/
文件夹下的文件,然后您可以对其进行热更新。如果您想部署单个 .war 文件,然后在部署后对其进行调整,例如在开发模式下,这种方法很有用。但是,直接对展开的文件夹进行更改要谨慎,因为如果重新启动服务器并重新展开应用程序,它可能会被擦除。
一般情况下,用户不需要war了解应用扩展或热更新的细节,因为如果您使用Liberty dev mode,这一切都已解决。如果你还没有厌倦它,我强烈推荐它。
我已经安装了openLiberty 20.0.0,我想激活hotdeployment。 为此,我将 applicationMonitor 标签添加到 server.xml
<applicationMonitor updateTrigger="polled" pollingRate="500ms"
dropins="dropins" dropinsEnabled="true"/>
但这些似乎已经是默认设置了。所以也许我可以离开它。
我还添加了自动扩展功能
<applicationManager autoExpand="true" />
现在,当我将 .war 文件部署到 dropins 文件夹时,openLiberty 会自动识别应用程序并立即部署。目前为止一切正常。
但据我所知,还应该在我的 运行 应用程序中识别和更新单个源文件的热部署(例如 .html、.xhtml。)需要全面重新部署。
例如,如果我更改应用程序文件夹中的单个 jsf 文件
./dropins/myapplication.war/my-page.jsf
没有任何反应。 我错过了什么让 OpenLiberty 也能识别这个微小的文件更改?
简单回答:
删除 <applicationManager autoExpand="true" />
一切都会如您所愿。
更长的答案:
如果您的 server.xml 配置中有 <applicationManager autoExpand="true" />
,则应用程序将自动扩展到位于 ${server.config.dir}/apps/expanded/APP_NAME/
因此,当您 运行 应用程序时,您将拥有如下文件布局:
./server.xml
./dropins/myapplication.war
./apps/expanded/myapplication.war/my-page.jsf
./apps/expanded/myapplication.war/WEB-INF/classes/com/foo/SomeAppClass.class
"active" 组文件将是 apps/expanded/
文件夹下的文件,然后您可以对其进行热更新。如果您想部署单个 .war 文件,然后在部署后对其进行调整,例如在开发模式下,这种方法很有用。但是,直接对展开的文件夹进行更改要谨慎,因为如果重新启动服务器并重新展开应用程序,它可能会被擦除。
一般情况下,用户不需要war了解应用扩展或热更新的细节,因为如果您使用Liberty dev mode,这一切都已解决。如果你还没有厌倦它,我强烈推荐它。