我已经开发了一个带有springboot的restapi。我使用angular作为前端,并将其文件添加到resources/static。一切正常。
我目前以fatjar格式部署我的应用程序。SpringBoot应用程序不经常更改,但我必须每天更改前端。有没有办法将更新的angular文件注入到当前部署的jar文件中?或者我应该改变 Package 战争和使用外部tomcat服务器?
我已经开发了一个带有springboot的restapi。我使用angular作为前端,并将其文件添加到resources/static。一切正常。
我目前以fatjar格式部署我的应用程序。SpringBoot应用程序不经常更改,但我必须每天更改前端。有没有办法将更新的angular文件注入到当前部署的jar文件中?或者我应该改变 Package 战争和使用外部tomcat服务器?
1条答案
按热度按时间wgxvkvu91#
实际上,您可以使用jar命令更新现有的jar文件:
jar uf jar-file input-file(s)
但是,仍然需要重新启动该过程。我想,你的问题更多的是
hot deployment
或者hot swapping
-如何添加新文件而不停止正在运行的进程。对于生产环境中带有嵌入式tomcat的spring引导应用程序,仍然需要重新启动它。
因此,实现Angular 前端热部署的最简单方法是拆分jar,提取Angular 应用程序,然后分别部署。
正如您所提到的,您可以使用angular应用程序将war部署到tomcat示例。如果您使用基于linux的机器,我建议将angular应用打包到tar/zip中,并将其解压缩到apachehttpd或nginxweb服务器。
此外,您还可以使用docker compose进行实时重新加载。
在开发环境中,这要容易得多,因为您可以使用ide支持与springboot devtools相结合来实现热交换,springbootdocs对此进行了详细的解释。