Frage

Ich bin immer noch lernen, wie man ANT verwenden gut, und ich wollte verstehen, wenn es eine vernünftige Art und Weise zu tun, Datei Aufgaben darin, ähnlich wie Rechen und Marke:

http://martinfowler.com/articles/rake.html#FileTasks

"Mit einer Datei, die Sie tatsächlich Dateien beziehen, werden eher als Aufgabennamen. So‚build / dev / rake.html‘und‚dev / rake.xml‘sind Dateien selbst. Die HTML-Datei ist die Ausgabe dieser Aufgabe und die xML-Datei ist die Eingabe Sie können eine Datei Aufgabe denken als zu sagen das Build-System, wie die Ausgabedatei zu machen -. in der Tat ist dies genau der Begriff in Make - Sie die Ausgabedateien aufzulisten, die Sie wünschen und erklären lassen, wie sie zu machen.

Ein wichtiger Teil der Datei Aufgabe besteht darin, dass es nicht ausgeführt werden, wenn Sie es ausführen müssen. Das Build-System schaut auf den Dateien und läuft nur die Aufgabe, wenn die Ausgabedatei nicht existiert oder es ist das Änderungsdatum früher ist als die Eingabedatei. Datei-Aufgaben daher extrem gut funktionieren, wenn Sie Dinge in einem Datei-Datei-Basis zu denken. "

Also mit anderen Worten, sagen wir, ich möchte eine benutzerdefinierte binäre laufen und ich möchte nur, dass binäre ausgeführt werden, wenn eine der Dateien geändert haben. Dies bezieht sich dies auf Frage, aber ich will nicht auf alle binären laufen, nicht nur einen Teil des fileset passieren (dh es gibt nur einen in der fileset und ich will nicht das Werkzeug auf Anhieb funktioniert).

Die ideale Lösung wäre auch kein loooong Sache sein, sondern einfach an ein beliebiges Ziel angewendet werden könnte - vielleicht etwas ANT JavaScript oder benutzerdefinierte Aufgabe mit

War es hilfreich?

Lösung

Verwenden Sie ant-contrib outofdate Aufgabe . Es hat genau die Eigenschaften, die Sie haben wollen. Hier ist ant-contrib Webseite .

Hier ist eine Vorlage, wie es in Ihre Build zu integrieren:

<taskdef
  resource="net/sf/antcontrib/antlib.xml"
>
  <classpath>
    <pathelement location="${ant-contrib.jar}"/>
</taskdef>

<outofdate>
 <sourcefiles path="dev/rake.xml"/>
 <targetfiles path="build/dev/rake.html"/>
 <sequential>
   ... do your work here ...
   ... will only run if rake.html is older than rake.xml ...
 </sequential>
</outofdate>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top