buildr には、「ターゲット」、「レポート」などのディレクトリ用に、カピストラーノなどの事前定義された変数がありますか? そうでない場合、これらのディレクトリの場所をハードコーディングするのではなく、これらのパスを特定/決定するにはどうすればよいでしょうか?
最終的な目標は、オンザフライでファイルを作成し、それをターゲット ディレクトリに挿入するタスクを作成することです。
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が別の回答への返信で指摘したように、ドキュメントにはこれらの記号名のリストがあります。
新しいレイアウトを定義して、プロジェクトで使用できます。
ここのビルドファイルの例:
my_layout = Layout.new
my_layout[:source, :main, :java] = 'java'
my_layout[:source, :main, :resources] = 'resources'
define 'foo', :layout=>my_layout do
...
end
Builder のチュートリアルへのリンクを更新http://buildr.apache.org/extending.html#layouts
UR6LAD が言うように、buildr はそのすべてのパスを のプロジェクトごとのインスタンスに格納しますLayout
。このページでは、デフォルトのレイアウトについて説明します。ターゲット ディレクトリには、 を使用してアクセスできますlayout[:target]
。