【问题标题】:How do you generate executables within a gem with Rake?如何使用 Rake 在 gem 中生成可执行文件?
【发布时间】:2009-09-24 04:56:25
【问题描述】:

我最近一直在学习 Ruby,但我还没有陷入学习 Rake 的阴暗面。我一直在玩 NetBeans,我用一个简单地打印“Hello, World!”的文件制作了一个小 Ruby 项目。我正在查看 NetBeans 生成的 Rakefile,我注意到它已注释掉 s.executables 行,因此我取消注释并尝试构建它。当然它失败了:

Don't know how to build task 'bin/your_executable_here'

我想做的是弄清楚如何让它发挥作用。我已经用谷歌搜索了,但找不到任何有关如何正确生成可执行文件的信息。这是 NetBeans 生成的 Rakefile:

需要“红宝石” 需要“耙子” 需要“耙/清洁” 需要'rake/gempackagetask' 需要'rake/rdoctask' 需要'rake/testtask' 规格 = Gem::Specification.new 做 |s| s.name = '学习' s.version = '0.0.1' s.has_rdoc = true s.extra_rdoc_files = ['README', 'LICENSE'] s.summary = '你的总结在这里' s.description = s.summary s.author = '' s.email = '' s.executables = ['your_executable_here'] s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,lib,spec}/**/*") s.require_path = "lib" s.bindir = "bin" 结尾 Rake::GemPackageTask.new(spec) 做 |p| p.gem_spec = 规格 p.need_tar = true p.need_zip = true 结尾 Rake::RDocTask.new 做 |rdoc| 文件 =['README', 'LICENSE', 'lib/**/*.rb'] rdoc.rdoc_files.add(文件) rdoc.main = "README" # 开始页面 rdoc.title = "学习文档" rdoc.rdoc_dir = 'doc/rdoc' # rdoc 输出文件夹 rdoc.options

如果这是一个愚蠢的问题,我很抱歉,老实说,我确实尝试过自己查找信息。

编辑:我不知道必须有一个与您在项目的 ./bin 中指定的默认文件同名的可执行文件。我都想通了。

【问题讨论】:

  • 您想要 Netbeans 运行该文件,还是想要一个生成可执行 Ruby 文件(.bat 或 .sh)的 rake 任务?

标签: ruby netbeans rake


【解决方案1】:

s.executables 数组必须包含 gem 的 bin 目录中的可执行文件的名称

 s.executables = %w( my_awesome_commandline_churner )

【讨论】:

【解决方案2】:

此代码用于制作 gem 文件。 Gems 是 ruby​​ 的包管理设备。一些 gem 带有可从命令行运行的可执行脚本文件。构建 gem 时它们被放置在 ./bin 目录中,部署后它们将被复制到与 ruby​​ 可执行文件相同的文件夹中。

要使文件可执行,您需要在第一行添加一个 shabang (#!/user/local/bin/ruby) 并更改文件权限以允许执行。

【讨论】:

  • 那么,我到底需要做什么才能做到这一点?它只是给了我“不知道如何构建任务'bin/testexe'”错误。我应该将文件放在相对于 Rakefile 的 bin 文件夹中吗?因为我试过了,它继续给我错误。我开始怀疑这是否可能不仅仅是 NetBeans 问题...
  • 没关系,我的笨蛋想出来了。 :\,谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2017-06-02
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多