Ruby 具有可变任务列表的Rake多任务
我读过一些关于使用rake参数和rake多任务的文章。下面是一些简单的例子Ruby 具有可变任务列表的Rake多任务,ruby,rake,parallel-processing,Ruby,Rake,Parallel Processing,我读过一些关于使用rake参数和rake多任务的文章。下面是一些简单的例子 multitask 'build_parallel' => ['build_a', 'build_z'] 或 我的问题: 在一个任务中构建一个全局变量,然后在多任务中使用的最佳方法是什么?下面的命令不执行task1、task2、task3…这意味着全局$build\u列表为空 $build_list = [] task :build do $build_list << 'task1' $
multitask 'build_parallel' => ['build_a', 'build_z']
或
我的问题:
在一个任务中构建一个全局变量,然后在多任务中使用的最佳方法是什么?下面的命令不执行task1、task2、task3…这意味着全局$build\u列表为空
$build_list = []
task :build do
$build_list << 'task1'
$build_list << 'task2'
$build_list << 'task3'
Rake::MultiTask[:build_parallel].invoke # or Rake::Task[:build_parallel].invoke
end
multitask :build_parallel => $build_list
$build\u list=[]
任务:构建do
$build_list问题不在于您选择的变量类型,而在于您在任务执行过程中填充变量,而依赖关系图是在任何任务执行之前创建的。多亏了前面的响应,我找到了解决方案:
在运行依赖项列表中的任何任务之前,在任务外部的方法中计算动态变量
# Generate the list in a method instead of a task
def get_list
build_list = []
build_list << 'task1'
build_list << 'task2'
build_list << 'task3'
end
# Make sure the list has been generated before the multitask call
@build_list = get_list
# Then define the multitask list dependency
multitask :build_parallel => @build_list
#在方法而不是任务中生成列表
def get_列表
构建列表=[]
构建列表感谢您的响应,我如何修改依赖关系图,以便使用可变多任务而不是预先配置的多任务。我正在寻找一种允许动态多任务处理的方法。如果您不介意在任何任务之前执行您的逻辑,那么您可以在任何任务之外的rake文件中使用内联代码
# Generate the list in a method instead of a task
def get_list
build_list = []
build_list << 'task1'
build_list << 'task2'
build_list << 'task3'
end
# Make sure the list has been generated before the multitask call
@build_list = get_list
# Then define the multitask list dependency
multitask :build_parallel => @build_list