rake - 加载rake文件并运行其他文件中的任务

标签 rake rakefile

目前,我正在尝试拆分rake文件以更好地组织它们。为此,我在rake目录中添加了assets文件夹,该文件夹为每组任务保留一个rake文件。

因为我来自PHP,所以我只具备Ruby / Rake的非常基础的知识,并且在加载文件后无法运行我的 namespace 默认操作。
Rake :: Task ...中被赞扬的app:init -string向我的CL抛出了错误:

rake aborted! 
uninitialized constant TASK


这是 namespace /类(如果这是正确的词)。
task :default => [ 'app:init' ]
namespace :app do

    rake_dir   = "#{Dir.pwd}/assets/rake/"
    rake_files = FileList.new( "#{rake_dir}*" )

    desc "Loads rake modules (Default action)"
    task :init do
        puts "\t Importing rake files for processing"

        puts "\t loading..."
        rake_files.each() { |rake|
            puts "\t #{rake}"
            require rake
            # @link rubular.com
            name = rake.split( rake_dir ).last.gsub( /.rb\z/, '' )
            puts "\t #{name}"
            #Rake :: Task[ "#{name}:default" ].invoke
        }
    end
end

提前致谢。

编辑:至少,我可以确定文件已加载,因为回显了这些文件开头的纯puts "file loaded"。问题似乎仅在于未加载已加载rake文件中 namespace 的:default操作。

最佳答案

您可以将任务放入rakelib/默认加载的rake文件夹中,也可以通过以下方式在Rakefile中添加特定的文件夹:

Rake.add_rakelib 'lib/tasks'

关于rake - 加载rake文件并运行其他文件中的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13762152/

相关文章:

ruby - rake 使用 -m 两次调用任务

ruby-on-rails - 访问 Rake 命名空间中的 Rails 环境配置

rake - 在后台运行rake任务与使用诸如Delayed Job,Resque或Sidekiq之类的gem有什么区别?

ruby - 如何并行执行 Rake 任务

ruby-on-rails - 在 Rake 中组合多个任务时清理任务

ruby - Rakefile - 停止多任务中的每一个任务

ruby - 使用 rake 导入(调用其他 rakefile)

ruby-on-rails-4 - 在 Elastic Beanstalk 环境中运行 Rails rake 任务

namespaces - Rake 默认任务和命名空间

ruby-on-rails - 迁移正在等待;运行 'rake db:migrate RAILS_ENV=development' 来解决这个问题。?