代码之家  ›  专栏  ›  技术社区  ›  Rayne

如何使用Rake在gem中生成可执行文件?

  •  1
  • Rayne  · 技术社区  · 16 年前

    我最近一直在学习Ruby,还没有进入学习Rake的肮脏角落。我一直在使用NetBeans,我用一个简单打印“Hello,World!”的文件做了一个小Ruby项目。我正在查看NetBeans生成的Rakefile,我注意到它已经注释掉了s.executives行,所以我取消了注释,并尝试构建它。当然,它失败了:

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

    require 'rubygems'
    require 'rake'
    require 'rake/clean'
    require 'rake/gempackagetask'
    require 'rake/rdoctask'
    require 'rake/testtask'
    
    spec = Gem::Specification.new do |s|
      s.name = 'Learning'
      s.version = '0.0.1'
      s.has_rdoc = true
      s.extra_rdoc_files = ['README', 'LICENSE']
      s.summary = 'Your summary here'
      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"
    end
    
    Rake::GemPackageTask.new(spec) do |p|
      p.gem_spec = spec
      p.need_tar = true
      p.need_zip = true
    end
    
    Rake::RDocTask.new do |rdoc|
      files =['README', 'LICENSE', 'lib/**/*.rb']
      rdoc.rdoc_files.add(files)
      rdoc.main = "README" # page to start on
      rdoc.title = "Learning Docs"
      rdoc.rdoc_dir = 'doc/rdoc' # rdoc output folder
      rdoc.options 

    2 回复  |  直到 16 年前
        1
  •  1
  •   Julik    16 年前

     s.executables = %w( my_awesome_commandline_churner )
    
        2
  •  1
  •   John F. Miller    16 年前

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

    推荐文章