我需要将我的应用程序部署在嵌入式解决方案中(在树莓派零上运行)。因此,我只能在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中添加,提交或推送现有文件。

    09-30 23:49