来自java世界,如果
rake == ant
gem == maven #at least the dependency part
那么什么是捆绑者呢?
它说“管理你的应用程序的依赖关系”,但这不是宝石为我提取它们的行为吗?
答案 0 :(得分:2)
Gem获取一个库并将其安装在一个预定义的位置,例如vendor gem,system或user gem directory。然后,您的程序将使用该安装的版本。因此,如果您有两个程序需要两个不同版本的gem,那么您可能会运气不好,因为当您安装更新版本时,需要旧版本的应用程序可能会遇到问题。您可以指定gem的版本号,但这些版本号需要在目标服务器上可用。
捆绑包来自哪里 - 它管理精确的依赖关系,包括gem版本。因此,当您部署应用程序并指定了所需的确切gem版本时,bundler会负责获取并安装那些确切的版本。您的应用程序现在将捆绑指定的版本,以便在目标系统上,当宝石具有不同的,不兼容的版本时,它不会中断。
答案 1 :(得分:2)
耙=蚂蚁 gem = jar Bundler = maven