Sie können einen vorhandenen Pfad direkt nicht verlängern, wenn Sie so etwas wie dies versuchen:
<path id="project.classpath">
<pathelement path="build/classes" />
</path>
<path id="project.classpath">
<pathelement path="${ant.refid:project.classpath}" />
<pathelement path="module1/lib" />
</path>
Es wird aufgrund einer „Zirkularität“ fail, wo Sie versuche, gleichzeitig den Pfad zu lesen und zu setzen.
Sie können tun, was Sie wollen, indem Sie einen zusätzlichen Schritt hinzufügen, um den Kreis zu durchbrechen. Vor jeder Einstellung des Pfades, speichern Sie den aktuellen Wert in einer <string>
Ressource:
<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}" />
Renditen etwas wie dies bei der Ausführung:
[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
Sie sind die id
auf einen anderen Pfad erneut die Zuordnung jedes Mal . Normalerweise ist dies eine schlechte Idee, da Sie nicht sicher sein können, welcher Pfad an jedem Punkt des Builds verwendet wurde: Verwenden Sie also vorsichtig.