我缺少有命令行开关吗?

目前,我必须这样做:

#task :install => :build do
task :install do
end
有帮助吗?

解决方案

我似乎通过简单地添加格式“ taskname_no_prerequisites”的额外任务来解决此问题。因此,例如,在下面的代码中执行“ rake install_no_prerequisites”不会导致执行“构建”。

desc "Build"
task :build do
  puts "BUILDING..."
end

desc "Install"
task :install => :build do
  puts "INSTALLING..."
end

Rake::Task::tasks.each do |task|
  desc "#{task} without prerequisites"
  task "#{task}_no_prerequisites".to_sym do
    task.invoke_without_prerequisites
  end
end

module Rake
  class Task
    def invoke_without_prerequisites
      execute
    end  
  end
end

其他提示

如果定义对任务的依赖性,则将始终首先运行。但是,您可以单独创建任务,然后将它们与其他任务一起汇总在一起,例如:

task :build do
  ... 
end

task :install do
  ...
end

task :go => [:build, :install]

然后,您可以独立调用构建或安装任务,或使用GO任务运行序列。

rake build
rake install
rake go

实际上,我做了很多事情。当我想要时,可以运行单个步骤,并且在需要时,它具有更大的步骤顺序,这使我非常方便。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top