Capistrano for Java?

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

我不认为Java Web应用程序有类似Capistrano的应用程序,但这并不能真正阻止您使用它(或像Fabric这样的替代方案)来部署您的应用程序。 正如您已经说过的,Ant更像是GNU Make的替代品,而Maven是主要的buildout / dependency-management应用程序。

由于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为基本的Command Dispatching Frameworks。

但是,ControlTier的设计远远超出了其他工具所提供的function。 ControlTier提供的自动化库和基于Web的工具旨在让您构建完整的自动化系统,供企业或大型Web运营团队使用。 还有一些function,如error handling和集中式日志记录,这些function不属于其他命令调度工具的范围。

此外,Capistrano是一个基于Ruby的工具,主要关注Ruby on Rails社区的需求。 ControlTier虽然是用Java编写的,但它并不需要您了解Java才能使用它。 实际上,您可以使用您熟悉的任何脚本语言(包括ruby)。 ControlTier试图将语言和平台(Linux,Unix,Windows等)尽可能保持中立。

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

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

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

  1. 更新代码
  2. 将代码推送到生产服务器
  3. 准备此部署的配置文件
  4. 重启服务器。 (瘦,nginx,tomcat)

在我的公司,我们使用Capistrano来部署java,Vuejs,php,ruby,python应用程序。

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

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

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

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

Interesting Posts