如何从其他Ruby脚本中调用在标准Rakefile中定义的Rake任务?
发布时间:2020-12-16 19:47:53 所属栏目:百科 来源:网络整理
导读:可以从其他 Ruby脚本调用Rakefile中定义的任务 – 而不是在somefile.rake中调用? 我希望创建一个新的Rake :: Application会自动从同一个目录加载Rakefile,但是似乎并非如此.这是我到目前为止所想到的: $LOAD_PATH.unshift File.dirname(__FILE__)require '
可以从其他
Ruby脚本调用Rakefile中定义的任务 – 而不是在somefile.rake中调用?
我希望创建一个新的Rake :: Application会自动从同一个目录加载Rakefile,但是似乎并非如此.这是我到目前为止所想到的: $LOAD_PATH.unshift File.dirname(__FILE__) require 'rake' require 'pp' rake = Rake::Application.new rake[:hello].invoke 执行此代码会导致以下内容: /opt/ruby/1.9.2-p180/lib/ruby/1.9.1/rake.rb:1720:in `[]': Don't know how to build task 'hello' (RuntimeError) from script.rb:7:in `<main>' pp rake产生以下结果: #<Rake::Application:0x00000101118da0 @default_loader=#<Rake::DefaultLoader:0x00000101118b20>,@imported=[],@last_description=nil,@loaders= {".rb"=>#<Rake::DefaultLoader:0x00000101118a80>,".rf"=>#<Rake::DefaultLoader:0x000001011189b8>,".rake"=>#<Rake::DefaultLoader:0x00000101118800>},@name="rake",@original_dir= "/Users/t6d/Projects/Sandbox/Ruby/rake-from-ruby-script",@pending_imports=[],@rakefile=nil,@rakefiles=["rakefile","Rakefile","rakefile.rb","Rakefile.rb"],@rules=[],@scope=[],@tasks={},@top_level_tasks=[],@tty_output=false> 这是令人讨厌的@rakefile为零. 更新5月20日,下午4:40 CET 在读取耙子源代码一段时间后,我发现您需要调用Rake :: Application#init来初始化新创建的耙机应用程序: rake = Rake::Application.new rake.init rake.load_rakefile 但是,我仍然无法调用我的Rakefile中定义的任务: rake.top_level_tasks # => ["default"] 我很乐意就此事提供任何帮助. 解决方法
你忘了添加新的耙子到当前的耙子应用程序:
$LOAD_PATH.unshift File.dirname(__FILE__) require 'rake' require 'pp' rake = Rake::Application.new Rake.application = rake rake.init rake.load_rakefile rake[:hello].invoke 要不就 $LOAD_PATH.unshift File.dirname(__FILE__) require 'rake' require 'pp' Rake.application.init Rake.application.load_rakefile Rake.application[:hello].invoke (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |