7
votes

Erreur d'ant Imable de renommer l'ancien fichier au fichier temporaire

J'utilise Ant 1.8.0 et Java 1.6.0.17 et je suis en train de courir dans un problème étrange.

dans mon build.xml, j'ai une tâche simple qui compile le code p>

<jar destfile="library.jar" update="true" duplicate="fail">
    <fileset dir="${dir.build.classes}">
        <include name="some/class/files"/>
    </fileset>
</jar>


0 commentaires

5 Réponses :


3
votes

Ceci est un problème de verrouillage de Windows. Tout processus / thread lisant le fichier l'empêchera d'être renommée, ce qui est la tâche ZIP, lors de la mise à jour d'un fichier JAR existant.

Je suppose que la poignée de fichier est maintenue ouverte car votre utilisation d'une référence de classe de classe. Peut-être que les poignées de fichier pourraient être fermées si vous deviez explicitement définir la classe de classe de la tâche Javac?


1 commentaires

Pouvez-vous expliquer ce que vous entendez par "définir explicitement la classe de la tâche Javac"? C'est un ensemble assez grand de pots qui est utilisé dans plusieurs autres endroits, ce qui n'est donc pas vraiment une option, et je ne sais pas pourquoi cela ferait une différence.



5
votes

J'ai donc trouvé la réponse, après une certaine expérimentation. En ajoutant Fork = "true" à My Javac , la poignée du fichier est fermée à la fin de la tâche. Cela permet à ma modification de JAR de réussir plus tard dans la construction.

C'est malheureux cependant, car je dois m'empêcher d'ajouter ceci à chaque tâche Javac en amont.


0 commentaires

-1
votes

Il semble lié à la configuration de CLASSPATH et la première opération sur le fichier JAR le garde ouverte. J'ai résolu ce problème en supprimant "". de ma variables de classePath env.


0 commentaires

1
votes

Il y a un bug déposé pour le même problème ici .

Ils disent que cela est fixé dans la version ant 1.8


0 commentaires

1
votes

J'ai essayé la dernière version de Ant (1.10.7) et ses œuvres pour moi.

Ce problème a été résolu dans 1.9.7

WhatsNew dans la fourmi

FLITUTILS .java


0 commentaires