如何找到目标目录

时间:2011-07-12 15:44:16

标签: ruby buildr

对于像'target','reports'等目录,buildr是否有像capistrano这样的预定义变量?如果没有,那么我们如何定位/确定这些路径,而不是硬编码这些目录的位置?

最终目标是创建一个即时创建文件并将其插入目标目录的任务。

3 个答案:

答案 0 :(得分:3)

Buildr定义特殊目录的符号名称。 path_to(aka _)方法接受这些符号名称,并自动将它们转换为当前布局的路径。如,

define 'foo' do
  puts _(:target, :main, :classes)    # => /some/root/foo/target/classes
  puts path_to(:source, :main, :java) # => /some/root/foo/src/main/java
end

正如Antoine在回答另一个答案时所说,有一个这些符号名称in the documentation的列表。

答案 1 :(得分:2)

您可以定义新布局并在项目中使用它。

这里的buildfile示例:

my_layout = Layout.new
my_layout[:source, :main, :java] = 'java'
my_layout[:source, :main, :resources] = 'resources'
define 'foo', :layout=>my_layout do
    ...
end

<强>更新
链接到Buildr的教程http://buildr.apache.org/extending.html#layouts

答案 2 :(得分:0)

正如UR6LAD所说,buildr将其所有路径存储在Layout的每个项目实例中。此页面描述了default layout。 可以使用layout[:target]访问目标目录。