2016-08-08 36 views
0

ich zur Zeit eine exec Aufgabe in meinem Build wie folgt ausgeführt werden:Wie lib-Verzeichnis für Ant-Task angeben?

<target name="bar"> 
    <exec executable="ant"> 
    <arg value="-f"/> 
    <arg value="/path/to/my/build.xml"/> 
    <arg value="-lib"/> 
    <arg value="/path/to/my/libs"/> 
    </exec> 
</target> 

Ich weiß wirklich nicht, wie es und will die exec Aufgabe mit einer Ameise Aufgabe ersetzen:

<target name="bar"> 
    <ant antfile="/path/to/my/build.xml"/> 
</target> 

jedoch Ich weiß nicht, wie ich in diesem Fall das Verzeichnis lib angeben soll. Ist das irgendwie möglich?

+0

Was ist Ihr eigentliches Ziel? die 'ant' Aufgabe ist die' GOTO' von ant. Es wird fast immer zu einem Durcheinander führen. – thekbb

Antwort

1

Was möchten Sie erreichen, indem Sie auf diese Weise ANT von ANT aus starten?

Zum Beispiel, wenn Sie benutzerdefinierten ANT-Erweiterungen benötigen, kann der Pfad zu diesen Gläsern zur Laufzeit im Code wie folgt angegeben werden:

<taskdef resource="net/sf/antcontrib/antcontrib.properties"> 
    <classpath> 
    <pathelement location="${lib.dir}/ant-contrib-0.3.jar"/> 
    </classpath> 
</taskdef> 

wieder besser, Sie ein Abhängigkeitsmanagement-System wie Apache ivy integrieren könnten zu verwalten JAR-Abhängigkeiten von Drittanbietern

0

Sie können Ant-Skript in einem Ant-Skript wie unten aufrufen. Wenn Sie das Attribut inheritrefs = "true" verwenden, werden alle IDs, die im übergeordneten Buildskript festgelegt sind, auch an das untergeordnete Buildskript übergeben.

ZB:

<ant antfile="subbuild.xml" inheritrefs="true"/>