mkdir ant ausfällt. Wie kann ich mit diesem Fehler
Den ANT-build-Skript habe ich Folgendes:
- Führen Sie baut auf Windows server & Zip-binaries
- Ein Netzlaufwerk mit anderen Anmeldeinformationen auf einem lokalen Laufwerk (ex P:) mit
net use
- Ich bin mit
<mkdir>
erstellen Sie ein Verzeichnis auf dem eingehängten Laufwerk (P:) - Kopieren Sie die Binärdateien in das Laufwerk
Unten ist mein code für mkdir
<echo>Creating ${buildRequesterUserId} folder at mirroring site starts</echo>
<mkdir dir="P:\build_output\${buildRequesterUserId}"/>
<echo>Creating ${buildRequesterUserId} folder at mirroring site ends</echo>
Einige Zeit in die Erstellung der Ordner funktioniert und nach einiger Zeit schlägt er mit folgende Fehlermeldung
creation was not successful for an unknown reason
und macht den build fehlschlagen
Dieser Fehler tritt nach dem Zufallsprinzip. Das Mkdir funktioniert einige Zeit. Ich bin nicht sicher, warum es ausfällt und nicht sicher, ob seine, weil die Netzwerk-Verzögerung
auch das Verzeichnis ich versuche zu erstellen, die möglicherweise oder möglicherweise nicht vorhanden ist. Ich habe gelesen, dass die mkdir nicht alles tun, wenn Verzeichnis existiert bereits
Habe ich überprüft und es gibt keine failonerror
für mkdir. Ich glaube nicht, dass der build fehlschlägt, weil dieser.
Habe ich den Fehler behandelt in copy
Teil aber nicht sicher, wie das zu handhaben mkdir
Wie kann ich das erreichen? Jede Hilfe würde geschätzt
Hinsichtlich
Karthik
- wenn es Ihnen nichts ausmacht könnten Sie bitte einen Kommentar auf meine Antwort und beschreiben Sie, welcher Teil es ist das Problem behoben (wenn es wirklich gelöst 🙂
- hast du Schreibrechte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Apache Ant
Mkdir
Aufgabe ruftFile.mkdirs()
Methode, die anfällig für race conditions.File.mkdirs()
ist keine Atomare operation - ich denke, es ist implementiert als eine Sequenz vonmkdir
Anrufe.Im Falle eines remote-filsystem es gibt eine gute chance, dass Ihr Gastgeber wird Sie sich bewusst von Dateisystem-änderungen in der Mitte der
File.mkdirs()
Betrieb und es funktioniert nicht.Ant schien zu versuchen, es zu beheben, wie
Mkdir
code geändert, von diesem in 1.8.0zu diesem 1.8.2
also vielleicht ein Upgrade auf die aktuelle Ameise helfen könnte?
Wenn nicht - einige brute-force -
Mkdir
Aufgabe Erweiterung geschaffen werden könnten, mit Ihrer eigenenexecute()
Methode der Umsetzung.Wenn nicht - Trycatch Aufgabe von Ant-Contrib funktioniert.
Für mich, ich hatte ein ähnliches Problem mit der 1.9 version von ant.
Ich war löschen eines Verzeichnisses und sofort neu zu erstellen:
Obwohl das Verzeichnis local (kein Netzwerk-Laufwerk), indem ein sleep von 1 Sekunde zwischen den beiden Operationen behoben das Problem für mich:
Können Sie die KOPIE der Aufgabe erstellen von Verzeichnissen (inklusive Unterverzeichnisse).
Für mich eine Behebung des Fehlers im linux war es so einfach wie ausführen als sudo-Benutzer
"sudo ant"
Hier ist, wie ich es gelöst:
referenziert von build.xml)