关系捆绑和宝石

时间:2011-04-30 19:57:59

标签: ruby-on-rails

来自java世界,如果

rake == ant  
gem  == maven #at least the dependency part
那么什么是捆绑者呢?

它说“管理你的应用程序的依赖关系”,但这不是宝石为我提取它们的行为吗?

2 个答案:

答案 0 :(得分:2)

Gem获取一个库并将其安装在一个预定义的位置,例如vendor gem,system或user gem directory。然后,您的程序将使用该安装的版本。因此,如果您有两个程序需要两个不同版本的gem,那么您可能会运气不好,因为当您安装更新版本时,需要旧版本的应用程序可能会遇到问题。您可以指定gem的版本号,但这些版本号需要在目标服务器上可用。

捆绑包来自哪里 - 它管理精确的依赖关系,包括gem版本。因此,当您部署应用程序并指定了所需的确切gem版本时,bundler会负责获取并安装那些确切的版本。您的应用程序现在将捆绑指定的版本,以便在目标系统上,当宝石具有不同的,不兼容的版本时,它不会中断。

答案 1 :(得分:2)

耙=蚂蚁 gem = jar Bundler = maven