2011-07-12 57 views
1

buildr是否为像'target','reports'等目录有预定义变量,如capistrano?如果没有,而不是对这些目录的位置进行硬编码,我们还能如何定位/确定这些路径?如何查找目标目录

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

回答

3

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

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 

正如安东尼答复注意到另一个答案,有这些符号名in the documentation的列表。

2

您可以定义一个新布局并将其用于您的项目中。

构建文件,这里的例子:

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

+1

有链接到Buildr的文档? http://buildr.apache.org/extending.html#layouts 与往常一样,欢迎使用错误报告和增强功能,如果缺少东西,请帮助我们优化文档。 –

+0

@Antoine Toulme:感谢您的链接。我原来并没有检查这部分文档,因为它属于“扩展构建器”和“使用替代布局”部分的标题,给人的印象是没有任何内容与使用构建器的默认约定相关 – tmore

0

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