在使用 Rake 任务部署应用程序很长一段时间后,我开始阅读 Capistrano。它与 Rake 的相似程度真的很惊人。许多并行命令(如cap -T
)和许多相同的概念(命名空间、任务)。
有谁知道这背后的历史?Capistrano 是 Rake 的扩展,还是建立在它之上?
在使用 Rake 任务部署应用程序很长一段时间后,我开始阅读 Capistrano。它与 Rake 的相似程度真的很惊人。许多并行命令(如cap -T
)和许多相同的概念(命名空间、任务)。
有谁知道这背后的历史?Capistrano 是 Rake 的扩展,还是建立在它之上?
更新: Capistrano v3 切换回使用 Rake DSL而不是滚动他们自己的DSL。
Capistrano v1 和 v2 对rake没有依赖关系。它是作为用于处理远程服务器的 DSL 从头开始编写的。很明显 capistrano 的某些方面受到了 rake 的影响,但Jamis Buck认为有必要让 capistrano 独立存在。Capistrano 任务的行为与 rake 任务略有不同,并且它们的可挂钩性质将它们与 rake 任务区分开来。
Capistrano 因没有建立在 rake 之上而受到了一些批评,但至少在 Rails 社区中,它仍然是最受欢迎的部署工具。其他项目如Vlad the Deployer通过直接使用 rake 和 ssh 来对抗 capistrano 的实现。
Capistrano 最初是一系列 Rake 任务,但在其开发的早期就变成了独立的。