Sie können die ant-contrib foreach
Aufgabe verwenden, um über jede jrxml
Datei zu schleifen und die jrc
Aufgabe für jede von diesen aufzurufen. Wenn Sie es nicht haben, müssen Sie install ant-contrib kopieren, indem Sie seine JAR-Datei in das Verzeichnis lib
Ihrer Ant-Installation kopieren (wenn Sie Eclipse verwenden, können Sie es hinzufügen, indem Sie zu "Fenster> Einstellungen> Ant> Runtime gehen "und Hinzufügen der JAR in" Ant Home Entries ").
Im Folgenden wird ein Ziel definiert "all"
, die alle jrxml
Dateien im aktuellen Verzeichnis auswählen wird. Für jede dieser Dateien wird das Ziel "jrc"
aufgerufen und die entsprechende Datei wird von der Eigenschaft jrxml.file
referenziert.
Innerhalb dieser Aufgabe, in dem das Verzeichnis der jrxml
Datei mit der dirname
Aufgabe und der Namen der jrxml
Datei abgerufen befindet sich mit der basename
Aufgabe abgerufen. Die erstellte Datei .jasper
wird unter einem Ordner mit demselben Namen wie die Datei jrxml
erstellt. (Es muss zuerst mit der mkdir
Aufgabe erstellt werden).
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<target name="all">
<foreach target="jrc" param="jrxml.file">
<path>
<fileset dir=".">
<include name="**/*.jrxml"/>
</fileset>
</path>
</foreach>
</target>
<target name="jrc">
<dirname property="jrxml.dir" file="${jrxml.file}"/>
<basename property="jrxml.filename" file="${jrxml.file}" suffix="jrxml"/>
<mkdir dir="${jrxml.dir}/${jrxml.filename}"/>
<jrc srcdir="${jrxml.dir}"
destdir="${jrxml.dir}/${jrxml.filename}"
tempdir="${jrxml.dir}/${jrxml.filename}"
xmlvalidation="true">
<classpath refid="classpath"/>
<include name="${jrxml.filename}.jrxml"/>
</jrc>
</target>
Als Beispiel, wenn Sie eine Struktur haben:
+folder
+--jrxml
+----Example1.jrxml
+----Example2.jrxml
das Ergebnis wird
+folder
+--jrxml
+----Example1.jrxml
+----Example1
+------Example1.jasper
+----Example2.jrxml
+----Example2
+------Example2.jasper
Können Sie ein Beispiel von Werten für verschiedene 'srcdir' und' destdir' bieten sein ? Ich denke, dass die ['foreach'] (http://ant-contrib.sourceforge.net/tasks/tasks/foreach.html) Ant-Beitrag Aufgabe ist, was Sie hier wollen. – Tunaki