2016-07-01 16 views
4

antビルドファイル内の既存のパスタグを拡張することはできますか?たとえば、既存のantパスタグを拡張する

<path id="project.classpath"> 
    <pathelement path="build/classes" /> 
</path> 

path=module/libで延長します。結果はと同等になるように:

<path id="project.classpath"> 
    <pathelement path="build/classes" /> 
</path> 

<path id="project.classpath"> 
    <pathelement path="${ant.refid:project.classpath}" /> 
    <pathelement path="module1/lib" /> 
</path> 

それが原因あなたの「真円度」に失敗します:

<path id="project.classpath"> 
    <pathelement path="build/classes" /> 
    <pathelement path="module/lib" /> 
</path> 

答えて

0

あなたはこのような何かをしようとした場合、直接、既存のパスを拡張することはできません同時にパスを読み込んで設定しようとしています。

余分な手順を追加して円を壊すことで、あなたは望むことができます。パスの各設定の前に、<string>リソースの現在の値を格納します。実行すると

<path id="cp"> 
    <pathelement path="build/classes" /> 
</path> 
<echo message="${ant.refid:cp}" /> 

<string id="cps" value="${toString:cp}" /> 
<path id="cp"> 
    <pathelement path="${ant.refid:cps}" /> 
    <pathelement path="module1/lib" /> 
</path> 
<echo message="${ant.refid:cp}" /> 

<string id="cps" value="${toString:cp}" /> 
<path id="cp"> 
    <pathelement path="${ant.refid:cps}" /> 
    <pathelement path="module2/lib" /> 
</path> 
<echo message="${ant.refid:cp}" /> 

はこのようなものが得られます。

[echo] /ant/path/build/classes 
[echo] /ant/path/build/classes:/ant/path/module1/lib 
[echo] /ant/path/build/classes:/ant/path/module1/lib:/ant/path/module2/lib 

あなたは別のパスにidたびに再割り当てされています。通常、これは悪い考えです。ビルドの各ポイントでどのパスが使用されたのか分からないからです。注意して使用してください。

関連する問題