在异构环境 2)中打包和部署服务器端java软件 1)的现代替代方法是什么?
我找不到关于这个主题的大量连贯或最新信息,但我有一些想法。我会开始
war
个文件中并制作您自己的配置和部署脚本,例如,使用izpack,ant scripts,cargo或类似内容。war
文件捆绑到ear
(企业归档)文件中
war
文件。 第一个选项一直是我的参考方法,但需要大量的配置,安装脚本,这些脚本在不同的环境(例如,Linux,Windows)上有所不同。
哪些现代替代品使包装和部署更容易?
1)想象一下像微服务,RESTful通信等的SOA设置。
2)考虑到这一点,让我们排除诸如cloudbees,cloudfoundy等的PaaS
提供商。他们应该得到自己的主题。
答案 0 :(得分:10)
我建议阅读The Twelve-Factor App文档,其灵感来自Martin Fowler的企业应用程序架构模式和重构书籍。它表明了以下内容:
还有詹姆斯·刘易斯和马丁福勒的Microservices文章,其中陈述了上面列举的一些想法。
关于打包和部署,后一篇文章建议如下:
应用程序(及其微服务)应实现为可以独立替换,升级和部署的进程外组件(而不是进程内库)。组件通过使用显式远程调用机制提供更明确的组件接口。
Organized around Business Capabilities
每个组件应围绕业务能力,针对特定业务领域进行组织,采用包括用户界面,持久存储和任何外部协作在内的软件的路栈实施。这种方法还允许跨团队项目在同一组件上协同工作(并在整个生命周期内拥有产品)。
Smart endpoints and dumb pipes
应该使用简单的RESTish协议编排从微服务构建的应用程序。两个最常用的协议是使用资源API的HTTP请求响应,以及通过哑巴(例如RabbitMQ或ZeroMQ)的轻量级消息传递。
使用Continuous Delivery或它的前身Continuous Integration进行自动化可以降低构建,部署和运行微服务的操作复杂性。
答案 1 :(得分:0)
如果您使用Maven,Tomcat Maven插件的目标是创建可执行JAR以及标准WAR。您可以使用java -jar path_to.jar运行jar。在没有预先存在的Tomcat安装的情况下运行应用程序的有趣方式。看看:http://tomcat.apache.org/maven-plugin-2.2/executable-war-jar.html