【发布时间】:2012-07-10 22:08:52
【问题描述】:
是否有任何集成良好的应用程序管理堆栈允许构建、部署和更新作为服务器运行的非.war Java 应用程序?例如消息消费者是服务器(但不是网络服务器并且没有 Servlet),还是嵌入了 Jetty 的可执行 .jars?
构建和部署.wars 非常简单:Maven 具有战争原型,Jenkins 有大量插件用于将.war 文件部署到各种应用程序服务器,其中大多数接受在运行时上传新的 Web 应用程序。像 Elastic Beanstalk 这样的工具使这个过程更加容易,与服务器环境的管理联系在一起。
相比之下,部署可执行文件.jars 似乎是在重新发明轮子。需要找出遮蔽依赖关系并使用大量 Maven 插件创建可执行工件的最佳方法,将该工件存放在某处,然后找到一种将其安装在目标服务器上的方法,并在必要时替换/升级它(Debian 软件包将是这样做的一种方式)。
这一切对我来说似乎都非常“手动”,以至于将应用程序作为.wars 部署到应用程序服务器似乎是有利的,即使它们不适合这样的环境,只是这样你得到工具支持的好处。
【问题讨论】:
-
对于消息消费者,MessageDriven EJB 是否适合?这些可以作为 JAR 发布到应用服务器。
-
他们很可能是 - 不幸的是,我在一家小型初创公司,他们认为任何“重量级”的东西都是撒旦的作品。
标签: java deployment automation build-automation executable-jar