5 Stimmen

Wie <kopiert> man in einer <macrodef> in ant?

Ich versuche, Dateien in ein Makro zu kopieren, etwa so:

<project name="why" default="go">
  <macrodef name="copy-some-stuff">
    <attribute name="file.name" />

    <copy todir="/var/tmp">
      <fileset file="${file.name}" />
    </copy>
  </macrodef>

  <target name="go">
    <copy-some-stuff file.name="/etc/hosts" />
  </target>
</project>

aber ich erhalte die folgende Meldung

BUILD FAILED
b.xml:3: macrodef doesn't support the nested "copy" element.

Irgendwelche Ideen, außer "ja, sicher, macrodef unterstützt das verschachtelte "copy" Element nicht". So viel habe ich verstanden. Ich bin auf der Suche nach dem Grund für diese Einschränkung und einer möglichen Umgehung (ohne Verwendung von antcall ).

10voto

Laurynas Biveinis Punkte 10222

Versuchen Sie, die <copy> Element mit <sequential> :

<macrodef name="copy-some-stuff">
   <attribute name="file.name" />
   <sequential>
      <copy todir="/var/tmp">
          <fileset file="@{file.name}" />
      </copy>
   </sequential>
</macrodef>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X