是否有任何集成良好的应用程序管理堆栈允许构建、部署和更新.war
作为服务器运行的非 Java 应用程序?例如消息消费者是服务器(但不是网络服务器并且没有 Servlet),还是.jar
嵌入了 Jetty 的可执行文件?
构建和部署.war
s 非常简单:Maven 具有战争原型,Jenkins 有大量插件用于将.war
文件部署到各种应用程序服务器,其中大多数接受在运行时上传新的 Web 应用程序。像 Elastic Beanstalk 这样的工具使这个过程更加容易,与服务器环境的管理联系在一起。
相比之下,部署 executable .jar
s 似乎是在重新发明轮子。需要找出遮蔽依赖关系并使用大量 Maven 插件创建可执行工件的最佳方法,将该工件存放在某处,然后找到一种将其安装在目标服务器上的方法,并在必要时替换/升级它(Debian 软件包将是这样做的一种方式)。
这一切对我来说似乎都是“手动的”,以至于将应用程序部署为.war
应用程序服务器似乎是有利的,即使它们不适合这样的环境,只是为了让您获得工具支持的好处。