我是Capistrano的忠实粉丝,但我需要为仅限Java的商店开发自动部署脚本。我看过Ant和Maven,他们似乎不像Capistrano那样适合远程管理 - 他们似乎更专注于简单的构建和打包应用程序。那里有更好的工具吗?

有帮助吗?

解决方案

我认为Java Web应用程序不存在类似Capistrano的应用程序,但这不应该让您无法使用它(或像Fabric这样的替代方案)来部署您的应用程序。正如您已经说过的,Ant更像是GNU Make的替代品,而Maven是主要的构建/依赖管理应用程序。

由于Java Web应用程序要归功于.war容器较少依赖外部库,因此您可以(根据您的应用程序服务器)部署应用程序就像运行简单的HTTP PUT请求一样简单。

但如果您需要其他步骤, Fabric 已经运作良好对我来说到目前为止,我认为Capistrano还提供通用shell命令,put和get操作。如果您已经使用过的话,我不会寻找替代方案: - )

其他提示

我认为您正在寻找控制器(参见: http://controltier.org )。虽然controltier不需要专门用于Java部署。

请参阅文档中的摘录(参见:控制层文档):

  

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,   等等。)中性尽可能。

在我的工作中,我们专门使用Capistrano来部署我们所有的Java应用程序。这绝对是可能的。

我使用capistrano配方从源代码构建dspace(一个java webapp,后者又使用maven):使用capistrano安装dspace

Capistrano可以部署所有Web基本应用程序。不同语言的部署几乎相同:

  1. 更新代码
  2. 将代码推送到生产服务器
  3. 准备此部署的配置文件
  4. 重启服务器。 (瘦,nginx,tomcat)
  5. 在我公司,我们使用Capistrano来部署java,Vuejs,php,ruby,python应用程序。

有趣的是,Capistrano对回购的想法假定您正在处理SCM(源代码管理器)。服务器上的结构和应用程序的关联版本控制在应用程序源上运行。这对于解释性语言是有意义的。

在像Java这样的编译语言中,版本控制和分支在部署之前以及在编译和构建应用程序时,源控制系统已经落后,结果是版本化的jar或tar包含应用程序。通常这个tarball(jar + config)发布到像Nexus或Artifactory这样的Maven工件库。

令人惊讶的是,这个神器回购映射到Capistrano仓库就好了。代替SCM,我们可以将此tarball视为SCM(要进行版本控制的源)。考虑到这一点,我已经为Maven工件回购实施了 Capistrano SCM插件。它是新的,但效果非常好。

它将我们的Ruby和Java项目统一在一个工具上,最重要的是,它为我们的Java项目带来了Capistrano的SSHKit和rake的强大功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top