Ant Skript: Umbenenenn von xxx.jar nach xxx.bak

DarthShader

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine Frage zu meinem Ant Skript. Ich möchte eine Datei "./dist/Release.jar" umbenennen in z.B. "./dist/Release.bak", dazu verwende ich folgenden Task:

XML:
<move todir="dist">
	<fileset dir="dist">
		<include name="Release.jar" />
	</fileset>
	<regexpmapper from="^(.*)\.jar$$" to="\1.bak" />
</move>

Ich verwende den "regexpmapper", da ich nicht genau weiß, wie das Release-File heißt - hier ist es fest kodiert als "Release.jar", aber in der echten Umgebung steht dort sowas wie "${distfile}" - deshalb so umständlich mit dem regexpmapper.

Meine Frage ist nun - geht das auch einfacher? Muss ich wirklich 6 Zeilen XML schreiben, um eine Datei von Release.jar nach Release.pak umzubenennen? Bitte daran denken, im echten Code steht nicht "Release.jar" sondern "${distfile}".

Ich habe das hier probiert:

XML:
<move file="Release.jar" todir="dist">
	<regexpmapper from="^(.*)\.jar$$" to="\1.bak" />
</move>

Aber das funktioniert leider nicht, in der log sagt Ant mir:

[move] Skipping self-move of D:\Projekte\Java\Test\dist\Release.jar

Ich verstehe nicht, wieso Ant sagt, es wäre ein "self-move" - kann mir das jemand erklären?


Über Eure Hilfe würde ich mich sehr freuen


Vielen Dank!
 
Zuletzt bearbeitet von einem Moderator:
bak hängt man aber normalerweise hinter den komplette Namen, damit man die Originalendung noch kennt.

Also eigentlich würde ein

XML:
<move file="${distfile}" tofile="${distfile}.bak"/>

doch reichen.
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

das "bak" ist wirklich nur ein Beispiel - die Originalendung soll in meinem Fall wirklich verändert werden.

Aus Release.jar soll also Release.xxx werden.
 
Hmm aber dein Script funktioniert bei mir:

XML:
<project name="MyProject" default="rename" basedir=".">

	<target name="rename">
		<echo message="${ant.version}" />
		<move todir="dist" overwrite="true">
			<fileset dir="dist">
				<include name="Release.jar" />
			</fileset>
			<regexpmapper from="^(.*)\.jar$$" to="\1.bak" />
		</move>
	</target>

</project>

Ausgabe:

Code:
Buildfile: C:\workspaces\build.xml
rename:
     [echo] Apache Ant version 1.7.0 compiled on December 13 2006
     [move] Moving 1 file to C:\workspaces\dist
BUILD SUCCESSFUL
Total time: 199 milliseconds
 
Zuletzt bearbeitet von einem Moderator:
Hallo zeja,

ja, meine Lösung bei Verwendung mit <fileset> geht ja auch, ich habe nicht gesagt, dass es nicht funktionieren würde. Ich habe bei dem unteren Beispiel mit <fileset> gesagt, dass es nicht funktioniert - ich würde meine erste Lösung jedoch kürzer haben. Es ist nichts immenent wichtiges, ich hätte nur erwartet, dass es eine viel kürzere Schreibweise gibt. Zusätzlich verstehe ich nicht, warum meine 2. Lösung (ohne das <fileset>) nicht funktioniert.
 

Neue Beiträge

Zurück