2011-01-11 10 views
2

Ich möchte eine andere Ameisen-Build-Datei von Ant laufen lassen, und die Aufgabe <ant> sieht dafür perfekt aus.Ant, Umgebungsvariable für <ant> Task festlegen?

Die andere Build-Datei verwendet Umgebungsvariablen für ein paar Dinge. Gibt es eine Möglichkeit, Umgebungsvariablen für den Kind-Ameisen-Prozess zu setzen?

Ich sehe, dass die <exec> Aufgabe scheint verschachtelt <env> s, aber nichts ähnliches für <ant>.

Antwort

0

Aus der Dokumentation von ant task,

standardmäßig alle Eigenschaften des aktuellen Projekts wird im neuen Projekt zur Verfügung stehen.

Sie können auch Eigenschaften im neuen Projekt aus dem alten Projekt festlegen, indem Sie verschachtelte property Tags verwenden.

<ant antfile="subproject/property_based_subbuild.xml"> 
    <property environment="env"/> 
</ant> 
+1

Ich verstehe, dass '' lädt einfach die aktuellen Umgebungsvariablen in eine ant-Eigenschaft namens "env", nein? Das kann also OK sein, wenn die andere Build-Datei die selbe '' -Zeile verwendet und nur diese Umgebungsvariablen über '$ {env}' verwendet, aber es werden keine Umgebungsvariablen gesetzt im Kind Ameisenprozess. (Ich werde es jedoch versuchen, wenn ich zur Arbeit komme.) – Ken

+0

Ich sehe den Punkt Ihres Vorschlags in diesem Zusammenhang nicht - Kens existierendes Skript müsste sich auf env vars mit einem führenden "env" beziehen. 'damit es funktioniert. Und wenn es das tut, wird es schon 'property environment =" env "' selbst ausführen. –

0

standardmäßig die innere ant Anruf erbt die übergeordneten Eigenschaften

<ant inheritAll="true" antfile="subproject/subbuild.xml"> 
    <!--inheritAll="true" is default value, this is unecessary --> 

    <property name="myprop" value="foo"/> 

    <antcall target="myTarget"></antcall> 
    <ant antfile="myAntFile"></ant> 

</ant> 

In diesem Fall "mytarget" und alle Ziele auf "myAntFile" kann "foo" als "Myprop" Wert.