我正在尝试构建一个静态库,它的名字只有在我处理一些文件后才能得到。我有这样的事情:

task :lib,:config do |t,args|
  # ... do some processing here, get a string representing the
  # fullpath of the lib. Imaging libname contains a.lib
  file libname => object_files
end

但是,当然,由于我不知道任务运行时依赖项的名称,因此不会执行应该构建 a.lib 的代码。我试着这样做:
task :lib,:config do |t,args|
  # ... do some processing here, get a string representing the
  # fullpath of the lib. Imaging libname contains a.lib
  file libname => object_files
  task :lib => [libname]
end

将此添加为依赖项,但它不起作用。我现在有这样的,并且有效:
task :lib,:config do |t,args|
  # ... do some processing here, get a string representing the
  # fullpath of the lib. Imaging libname contains a.lib
  file libname => object_files
  Rake.application[libname].invoke
end

但我觉得它太丑了。有没有更好的方法来声明这种依赖?

最佳答案

Rake::Task[libname].invoke

在我看来,这看起来稍微好一些,我认为除了调用 .execute 或 .invoke 之外,没有其他方法可以在 rake 任务中执行 rake 任务。

关于ruby - 如何在我的 Rakefile 中声明此依赖项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5474757/

10-15 10:15