对于像'target','reports'等目录,buildr是否有像capistrano这样的预定义变量?如果没有,那么我们如何定位/确定这些路径,而不是硬编码这些目录的位置?
最终目标是创建一个即时创建文件并将其插入目标目录的任务。
答案 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]
访问目标目录。