我是Capistrano的忠实粉丝,但我需要为仅限Java的商店开发自动部署脚本。我看过Ant和Maven,他们似乎不像Capistrano那样适合远程管理 - 他们似乎更专注于简单的构建和打包应用程序。那里有更好的工具吗?
答案 0 :(得分:14)
我认为Java Web应用程序不存在类似Capistrano的应用程序,但这并不能真正阻止您使用它(或像Fabric这样的替代方案)来部署您的应用程序。正如您已经说过的,Ant更像是GNU Make的替代品,而Maven是主要的构建/依赖管理应用程序。
由于Java Web应用程序要归功于.war容器较少依赖外部库,因此您可以(根据您的应用程序服务器)部署应用程序就像运行简单的HTTP PUT请求一样简单。
但是如果你需要额外的步骤,Fabric到目前为止对我来说效果很好,我认为Capistrano还提供了通用的shell命令,put和get操作。如果您已经使用过的话,我不会寻找替代方案: - )
答案 1 :(得分:5)
我认为控制者(参见:http://controltier.org)就是你要找的。虽然controltier不需要专门用于Java部署。
请参阅文档中的摘录(参见:control tier documentation):
ControlTier与Capistrano,Fabric还是Func相同?
在他们最基本的概念中, ControlTier,Capistrano,Fabric和 Func是类似的工具。星期三 肯定叫Capistrano,Fabric, 和Func基本命令调度 框架。
然而,ControlTier,由 设计,远远超出了这些 其他工具提供。自动化 库和基于Web的工具 ControlTier提供的是专为 让您构建完整的自动化系统 准备好供企业使用或 大型网络运营团队。 还有像这样的功能 错误处理和集中式日志记录 这不属于其他范围 命令调度工具。
此外,Capistrano是一个基于Ruby的工具 主要关注需求 Ruby on Rails社区。 ControlTier,用Java编写, 不要求你了解Java 用它。事实上,你可以使用任何东西 你是脚本语言 舒服(包括红宝石)。 ControlTier试图成为语言 和平台(Linux,Unix,Windows, 等等。)中性尽可能。
答案 2 :(得分:2)
在我的工作中,我们专门使用Capistrano来部署我们所有的Java应用程序。这绝对是可能的。
答案 3 :(得分:2)
我使用capistrano配方来构建dspace(一个java webapp,后者又使用maven)来自源代码:Installing dspace using capistrano
答案 4 :(得分:0)
Capistrano可以部署所有Web基本应用程序。不同语言的部署几乎相同:
在我公司,我们使用Capistrano来部署java,Vuejs,php,ruby,python应用程序。
答案 5 :(得分:0)
有趣的是,Capistrano的回购协议假设您正在处理SCM(源代码管理器)。服务器上的结构以及应用程序的相关版本控制可在应用程序源上使用。对于解释型语言来说,这很有意义。
但是,在像Java这样的编译语言中,版本控制和分支是在部署之前进行的,到编译和构建应用程序时,源控制系统已经被抛在后面,结果是要包含版本化的jar或tar应用程序。通常,这个压缩包(jar + config)发布到Nexus或Artifactory之类的Maven工件存储库中。
令人惊讶的是,这个工件仓库正好映射到Capistrano仓库。代替SCM,我们可以将此压缩包视为SCM(要版本化的源)。考虑到这一点,我实现了Capistrano SCM plugin for Maven artifact repos。它是新的,但效果很好。
它通过一个工具将我们的Ruby和Java项目统一起来,最重要的是,它为我们的Java项目带来了Capistrano的SSHKit的强大功能。