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