15

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

4

6 回答 6

14

我认为 Java Web 应用程序没有类似 Capistrano 的应用程序,但这不应该真正阻止您使用它(或 Fabric 等替代品)来部署您的应用程序。正如您已经说过的,Ant 更像是 GNU Make 的替代品,而 Maven 主要是构建/依赖管理应用程序。

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

但是如果你需要额外的步骤,到目前为止, Fabric对我来说效果很好,我假设 Capistrano 还提供通用的 shell 命令、put 和 get 操作。因此,如果您已经拥有的东西已经有效,我不会寻找太久的替代方案:-)

于 2008-10-08T15:08:45.307 回答
5

我认为 controltier(参见:http ://controltier.org )是您正在寻找的。尽管 controltier 不需要专门用于 Java 部署。

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

ControlTier 是否与 Capistrano、Fabric 或 Func 相同?

在最基本的概念中,ControlTier、Capistrano、Fabric 和 Func 是类似的工具。我们肯定会称 Capistrano、Fabric 和 Func 为基本命令调度框架。

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

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

于 2010-12-02T13:29:47.837 回答
2

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

于 2009-02-11T15:54:00.913 回答
2

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

于 2009-07-20T07:46:25.593 回答
1

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

然而,在像 Java 这样的编译语言中,版本控制和分支是在部署之前进行的,当应用程序被编译和构建时,源代码控制系统已经被抛在后面,结果是一个版本化的 jar 或 tar 来包含应用程序。通常,此 tarball(jar + config)会发布到 Maven 工件存储库,如 Nexus 或 Artifactory。

令人惊讶的是,这个工件回购映射到 Capistrano 回购就好了。代替 SCM,我们可以将此 tarball 视为 SCM(要版本化的源)。考虑到这一点,我为 Maven artifact repos 实现了 Capistrano SCM 插件。它是新的,但工作得很好。

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

于 2018-08-20T01:36:45.040 回答
0

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

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

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

于 2017-06-15T05:30:23.120 回答