2011-07-12 7 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]を使用してアクセスできます。