2016-03-18 6 views
0

NIしばしば「out.absolute.dir」を使用して、私はそれが正確にmean.So私は次の行にout.absolute.dirはlinuxで何を意味していますか?

を述べた短いビルドファイルの書き込み何をするかについては本当に興味がLinuxでの別のプロジェクトのビルドファイルで見ます
<project name="Test_Ant_APK" default="print"> 
    <property name="cal.out.dir" location="${out.absolute.dir}"/> 
    <target name="print"> 
    <echo>p=${cal.out.dir}</echo> 
    </target> 
</project> 

そして、私は、コマンドラインからこのビルドファイルを実行すると、私はこの出力

ビルドファイルだ:/home/jody/workspace/Test_Ant_APK/build.xml

印刷:

[echo] p=/home/jody/workspace/Test_Ant_APK/${out.absolute.dir} 

BUILD SUCCESSFUL

合計時間:0秒

私はoutput.Iについて少し混乱し、我々は、出力として、P = /ホーム/ジョディ/ワークスペース/ Test_Ant_APKを持つべきだと思います。出力の最後に$ {out.absolute.dir} があるのはなぜですか?どういう意味ですか?このビルドファイルに問題はありますか?

答えて

2

あなたのbuildscriptに何も問題ありません。 ${...}の構文を持つプロパティ値がありますが、 プロパティのout.absolute.dirは、あなたのantファイルのプロジェクトスコープ内に設定されていないため、=>${out.absolute.dir}というようにエコーされています。プロパティタスクでlocation属性を使用するため、antスクリプトが存在します。代わりに、value属性とプロパティタスクを使用している場合
は、違いを参照してください:

<project name="foo">  
    <property name="cal.out.dir" value="${out.absolute.dir}"/> 
    <target name="print"> 
    <echo>${cal.out.dir}</echo> 
    </target> 
</project> 

出力:

[echo] ${out.absolute.dir} 

を私はpropertyNameの$[out.absolute.dir}は事実のそのプロパティのタスクに複数のスクリプトに取られるかもしれないと考えています

:属性場所手段(ANTマニュアルから取られた)と

プロパティを指定されたファイルの絶対ファイル名に設定します。この属性の の値が絶対パスの場合は、 (/と\文字は現在のプラットフォーム の表記規則に変換されています)のまま変更されません。そうでない場合は、 プロジェクトのbasedirに対する相対パスとみなされ、展開されます。

詳細については、manual property taskを参照してください。
プロジェクトのname属性の値がエコーされたい場合は、組み込みのプロパティ${ant.project.name}を使用する必要があり、f.e:

<project name="foo"> 
<echo>$${ant.project.name} => ${ant.project.name}</echo> 
</project> 

が持つすべての組み込みのプロパティを参照してください。

<project> 
<echo>ant builtin properties:</echo> 
<echoproperties prefix="ant"/> 
<echo>java builtin properties:</echo> 
<echoproperties prefix="java"/> 
</project> 
+0

感謝を。それは非常に役に立ちます。それは本当に明確で完全な答えです。 :) –

+0

@jodyabbotご参考までに:-)プロパティタスクで値または場所の属性を使用する方法の違いを参照して、詳細を追加しました。また、それはWindows固有のものではなく、WindowsやLinuxでも同じです。 – Rebse

関連する問題