Frage

Ich habe ein Projekt mit mehreren Modulen, die jeweils in einem eigenen Verzeichnis. Jedes Modul hat seine eigene Ant-Build-Datei (build.xml)

Im Stammverzeichnis Ich habe eine allgemeine Build-Datei einrichten, die die Build-Datei jeden Moduls in der richtigen Reihenfolge aufruft.

<?xml version="1.0"?>
<project name="bridgedb" default="all" basedir=".">
  <target name="all">
    <ant dir="corelib"/>
    <ant dir="tools"/>
    <ant dir="makeGdb"/>
    <ant dir="cytoscape-plugin"/>
  </target>
</project>

Jetzt auch jedes Modul ein „sauberes“ Ziel, so füge ich diese Zeilen:

 <target name="clean">
    <ant dir="corelib" target="clean"/>
    <ant dir="tools" target="clean"/>
    <ant dir="makeGdb" target="clean"/>
    <ant dir="cytoscape-plugin" target="clean"/>
  </target>

Und es gibt mehr Ziele ähnlich. Gibt es eine Möglichkeit, die Build-Datei neu zu schreiben, diese Doppelarbeit zu vermeiden? Ich habe für eine integrierte Eigenschaft betrachtet, die das aktive Ziel enthält, aber ich konnte sie nicht finden.

War es hilfreich?

Lösung

Warum nicht benutzen antcall ein Ziel zu nennen, die alle Ihre subdirs verweist, und parametrisieren das Ziel genannt werden. z.

 <antcall target="doStuffToSubdirs">
    <!-- let's clean -->
    <param name="param1" value="clean"/>
  </antcall>

und dann:

<target name="doStuffToSubdirs">
   <ant dir="corelib" target="${param1}"/>
   <ant dir="tools" target="${param1}"/>
    ...etc
</target>

so können Sie so die Anrufe an Ihre subdirs parametrisieren. Wenn Sie ein neues Unterverzeichnis hinzufügen, können Sie nur das subdir auf das ‚doStuffToSubdirs‘ Ziel hinzufügen müssen (das würde ich umbenennen, wie gut!)

Andere Tipps

Setzen Sie ein sauberes Ziel in Ihrem commonbuild.xml und in den untergeordneten Dateien importieren nur Ihre Eltern build.xml

<import file="${parent.dir}/commonbuild.xml" />

Jetzt können Sie das sauberen Ziel nennt in Ihrem Kind aufbaut. Sie können auch dieses Ziel überschreiben, indem baut eine saubere Ziel in jeder Ihres Kindes zu schaffen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top