【发布时间】:2009-06-16 10:50:20
【问题描述】:
如何指定 gem 依赖项,使仅安装了 ruby、rake 和 rubygems 的用户可以发出单个 rake 命令来安装所需的所有依赖项?使用 GemBuildTask 构建 gem 时是否可以使用相同的依赖规范?
【问题讨论】:
如何指定 gem 依赖项,使仅安装了 ruby、rake 和 rubygems 的用户可以发出单个 rake 命令来安装所需的所有依赖项?使用 GemBuildTask 构建 gem 时是否可以使用相同的依赖规范?
【问题讨论】:
设置一个安装一堆 gem 的 rake 任务实际上很容易:
task :install_gems do
require "rubygems"
require "rubygems/dependency_installer"
installer = Gem::DependencyInstaller.new
[["rack"], ["merb-core", "1.0.12"]].each do |args|
installer.install(*args)
end
end
当然,您可以将其提取到一个方法中并编写一个更漂亮的方式来指定您的依赖项,但这应该会很好。
【讨论】:
【讨论】:
如果您的应用被打包为 gem,您可以将依赖项添加到 gemspec 中,并且 rubygems 会在您安装 gem 时尝试为您安装它们。
有很多方法可以用一些 ruby 代码制作 gem。最近我开始使用jeweler。
使用它,您可以通过运行 rake install 将项目安装为 gem。有一些关于如何在其 github wiki 上进行依赖的说明。
【讨论】: