buildr是否为像'target','reports'等目录有预定义变量,如capistrano?如果没有,而不是对这些目录的位置进行硬编码,我们还能如何定位/确定这些路径?如何查找目标目录
最终目标是创建一个即时创建文件并将其插入到目标目录中的任务。
buildr是否为像'target','reports'等目录有预定义变量,如capistrano?如果没有,而不是对这些目录的位置进行硬编码,我们还能如何定位/确定这些路径?如何查找目标目录
最终目标是创建一个即时创建文件并将其插入到目标目录中的任务。
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的列表。
您可以定义一个新布局并将其用于您的项目中。
构建文件,这里的例子:
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
由于UR6LAD说,buildr存储其所有的路径在Layout
每个项目的实例。本页面描述了default layout。 使用layout[:target]
可以访问目标目录。
有链接到Buildr的文档? http://buildr.apache.org/extending.html#layouts 与往常一样,欢迎使用错误报告和增强功能,如果缺少东西,请帮助我们优化文档。 –
@Antoine Toulme:感谢您的链接。我原来并没有检查这部分文档,因为它属于“扩展构建器”和“使用替代布局”部分的标题,给人的印象是没有任何内容与使用构建器的默认约定相关 – tmore