Capistrano for Java?

Capistrano for Java?,java,deployment,capistrano,Java,Deployment,Capistrano,我是Capistrano的忠实粉丝,但我需要为纯Java商店开发一个自动部署脚本。我看过Ant和Maven,它们似乎不像Capistrano那样适合远程管理——它们似乎更专注于简单地构建和打包应用程序。有更好的工具吗?我认为Java Web应用程序中没有类似Capistrano的应用程序,但这并不妨碍您使用它(或类似Fabric的替代方案)部署应用程序。正如您已经说过的,Ant更像是GNU Make的替代品,而Maven主要是构建/依赖关系管理应用程序 由于Java Web应用程序的.war容器

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

我认为Java Web应用程序中没有类似Capistrano的应用程序,但这并不妨碍您使用它(或类似Fabric的替代方案)部署应用程序。正如您已经说过的,Ant更像是GNU Make的替代品,而Maven主要是构建/依赖关系管理应用程序

由于Java Web应用程序的.war容器对外部库的依赖性较低,因此您可以(取决于您的应用程序服务器)使部署应用程序变得像运行简单的HTTP PUT请求一样简单


但如果您需要额外的步骤,到目前为止,它对我来说非常有效,我假设Capistrano还提供了通用的shell命令、put和get操作。因此,如果您已经拥有的功能能够正常工作,我不会花太长时间寻找替代方案:-)

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

我使用capistrano的方法从源代码构建dspace(一个java Web应用程序,它反过来使用maven):

我认为controltier(请参阅:)是您想要的。尽管controltier不需要专门用于Java部署

见文件摘录(见:):

ControlTier与Capistrano、Fabric或Func相同吗?

在他们最基本的概念中,, ControlTier、Capistrano、织物和 Func是类似的工具。我们会 一定要打电话给Capistrano面料公司, 和Func基本命令调度 框架

然而,ControlTier 设计,远远超出了这些 其他工具提供。自动化 图书馆和基于web的工具 ControlTier提供的功能旨在 让您构建全自动化系统 可供企业或企业使用 大型web操作团队。 还有一些功能,如 错误处理和集中日志记录 这不在其他研究的范围之内 指挥调度工具

此外,Capistrano是一个基于Ruby的工具 这主要集中在需求上 RubyonRails社区的成员。 ControlTier虽然是用Java编写的, 不需要您了解Java就可以 使用它。事实上,你可以用任何东西 您正在使用的脚本语言 舒适(包括ruby)。 ControlTier试图成为一种语言 和平台(Linux、Unix、Windows、, 等…)尽可能保持中立


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

  • 更新代码
  • 将代码推送到生产服务器
  • 为此部署准备配置文件
  • 重新启动服务器。(瘦,nginx,tomcat)

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

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

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

    令人惊讶的是,这一工件回购映射到Capistrano回购协议就很好。代替SCM,我们可以将这个tarball视为SCM(要版本化的源代码)。考虑到这一点,我实现了一个。这是新的,但效果很好


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

    ControlTier现在被Rundeck弃用。orgHow…你能指导我保留上次发布的war>只是为了记录在案:在2014年读了这篇文章后,我为解聚过程中的特定任务测试了织物。它进行得非常顺利,我们现在或多或少地在所有部署步骤中都使用了Fabric。我们在一系列不同的服务器上部署了一些Java服务器应用程序。