我需要将我的应用程序部署在嵌入式解决方案中(在树莓派零上运行)。因此,我只能在localhost上部署东西。我对虚拟主机不太熟悉,所以我对此可能是错的。
我的问题是我想让tomcat自动部署克隆到树莓派git仓库中的war文件。这样一来,可以轻松地在git存储库上进行更新,而不必与管理器打交道。话虽如此,我还希望使管理器和其他管理工具保持 Activity 和运行状态,这些工具包含在默认的webapps目录中。我不想将它们复制到git存储库中,因为它们将被放错位置并保存在存储库中,这是不必要的。此外,我想让tomcat“分解”或提取原始webapps目录中的WAR文件,以免将这些文件添加到git存储库中。
基本上,我希望能够自动部署某个目录中的所有war文件,而无需实际写入该目录,同时还能自动部署“标准” webapps目录中的war文件。
这可能吗?
我正在使用tomcat9
最佳答案
解决方案A:
Tomcat 9仅具有一个appBase属性,默认情况下为webapps
。为了更改,您需要配置2 Common attributes:
1.appBase:将此参数设置为需要部署战争的文件夹。
2.autoDeploy:确保将其设置为true。
不可能有2个appbase目录。因此,原始Web应用程序将无法自动部署。
解决方案B:
使用脚本从GIT存储库中提取WAR,该脚本还将把文件复制或移动到Tomcat9的标准webapps文件夹中。
例如
git pull rm path/to/tomcat/webapps/warname.war
mv warname.war
path/to/tomcat/webapps
解决方案C:
配置您的GIT存储库或其他GIT存储库,使其仅包含具有所需战争的webapps文件夹。如果仅使用此文件夹从GIT存储库中拉开战幕,则无需提交默认的Tomcat应用程序。请参阅以下步骤。
从
vanilla
Tomcat 9安装开始webapps
重命名为webappsOriginal
webapps
信息库,以便现在创建另一个webapps
文件夹,其中仅包含war。 webappsOriginal
的所有内容移动到webapps
。 webappsOriginal
现在,如果您从存储库中拉出,则将获取并自动部署更新的战争。
没有理由在GIT中添加,提交或推送现有文件。