maven… Échec du nettoyage du projet: Échec de la suppression .. \ org.ow2.util.asm-asm-tree-3.1.jar

J’utilise STS (suite d’outils spring) + plugin maven.

Chaque fois que je lance mon application en utilisant maven-clean je vois l’erreur suivante:

 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hhsystem ui 1.0.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ ui --- [INFO] Deleting C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.471s [INFO] Finished at: Mon Oct 21 12:34:33 MSK 2013 [INFO] Final Memory: 2M/90M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean (default-clean) on project ui: Failed to clean project: Failed to delete C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target\org.ow2.util.asm-asm-tree-3.1.jar -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Je dois fermer STS et aller à C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target et supprimer org.ow2.util.asm-asm-tree-3.1.jar

Après avoir recommencé à utiliser STS, cela fonctionne, mais c’est embêtant.

Pouvez-vous m’aider avec ce problème?

METTRE À JOUR
pour Kalathoki L.

Je lance maven-clean depuis cet état:

Capture d'écran STS

Je vois le même comportement depuis la ligne de commande que depuis le plugin eclipse

Si je regarde le déblocage lorsque STS est en cours d’exécution, je vois

écran de déverrouillage :

Arrêtez votre serveur avant de commencer à nettoyer.

Arrêt d’un serveur

Vous pouvez arrêter le serveur à partir de la vue Serveurs.

Pour arrêter le serveur:

  1. Dans la vue Serveurs ( Fenêtre> Afficher la vue> Autre> Serveur> Serveurs> OK ), sélectionnez le serveur que vous souhaitez arrêter.
  2. Cliquez sur le bouton Stop the server ce icône dans la barre d’outils. Dans la vue Serveurs, le statut du serveur devient Stopped.
  3. Si pour une raison quelconque le serveur ne parvient pas à s’arrêter, vous pouvez terminer le processus comme suit:

    une. Passez à la perspective Débogage.

    b. Dans la vue Processus, sélectionnez le processus serveur à arrêter.

    c. Cliquez sur Terminate Ceci est une image du Terminate icône dans la barre d’outils.

Remarque: à la fin d’un serveur, le processus du serveur se termine et le serveur ne passe pas par la routine normale d’arrêt, par exemple en appelant la méthode destroy () sur un servlet.

Source: Aide Eclipse

Vous pouvez également essayer -Dmaven.clean.failOnError=false (à partir de la FAQ Maven )

Votre problème est qu’un processus en cours d’exécution dans STS utilise des fichiers situés dans votre répertoire cible pendant que vous exécutez une commande mvn clean . Maven ne sera pas en mesure de supprimer ces fichiers (d’autres processus y ayant toujours access) et échouera donc avec cette erreur.

Essayez d’arrêter tous les processus (tests, serveurs, applications) à partir de STS avant d’exécuter les commandes de la console Maven. Attention: ce comportement peut également apparaître si STS nettoie les projets et recomstack ainsi les sources sans exécuter de processus.

Résumé: Utilisez un script externe (fichier de commandes) qui arrête le serveur et déverrouille le fichier .jar avant d’exécuter maven-clean.

Pas:

  1. Liez le plug-in maven-antrun: lancez l’objective jusqu’à la phase de pré-nettoyage de mvn clean. Voir comment faire ici

  2. Voir comment utiliser le plug-in antrun pour exécuter un fichier de commandes externe dans Windows ici: la réponse de sblundy à “Lancer un processus externe” . Appelons ce fichier unlock_handles.bat

  3. Utilisez le lien de téléchargement de l’ utilitaire de gestion Sysinternals dans le fichier pre_clean.bat pour a) arrêter le serveur Tomcat et b) déverrouiller le fichier .jar. handle -c et handle -p seraient utiles ici.

Ouf! C’est un peu de travail, mais cela automatisera de manière fiable le processus pour que vous ayez à le faire manuellement vous-même à chaque fois!


OK, voici une version de validation de concept de unlock_handles.bat que vous pouvez essayer:

 REM "Use handle.exe to figure out the process id and handle ids, parse the output, then close the handle (again using handle.exe)" cd "C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target" "c:/Program Files/Process Explorer/handle.exe" -p java.exe "C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target" > handles.txt @echo "O====== Going to unlock all the below file handles! =======O" FOR /F "tokens=1-26 delims=: " %a in (handles.txt) DO @echo %h FOR /F "tokens=1-26 delims=: " %a in (handles.txt) DO handle -p %c -c %f -y 

Bien sûr, vous devez changer le chemin d’access au handle.exe de Sysinternals avant d’essayer.

Il existe probablement de nombreux processus qui utilisent des sources compilées, par exemple un serveur, une ancienne instruction maven ou un IDE. Bien sûr, terminez tous les processus, arrêtez le serveur et exécutez à nouveau maven. Si le problème persiste, vous devez fermer le processus java.exe.

Cordialement!

Supprimez le processus java.exe dans le Gestionnaire des tâches et exécutez mvn clean install.Il a fonctionné pour moi.

Essayez de désactiver Project-> Build Automatically.

Comme Scorpio l’a suggéré, il existe un processus qui a un verrou sur un fichier quelque part.

J’ai un grand projet de multi-module maven qui échoue régulièrement sur clean et ceci le résout pour moi. Je ré-active Build automatiquement quand j’ai fini.

J’ai le même problème et ceci

 mvn clean install -U 

La commande a corrigé l’erreur.

Fermez le dossier cible et son fichier que vous avez ouvert avant de nettoyer mvn

Pour les utilisateurs Linux: solution possible.

Une erreur de compilation due à “Echec de la suppression de se produira s’il y a un risque de suppression uniquement fourni à l’ utilisateur root plutôt qu’à l’utilisateur normal .

Corrigé: tapez la commande ll pour lister le fichier qui ne peut pas être supprimé, si le fichier a un access root, changez pour un utilisateur normal par:

sudo chown -R nom-utilisateur: nom-fichier nom-utilisateur

Plus tard, essayez de nettoyer et construire Maven.

J’ai eu un problème similaire. Plus tôt, j’utilisais Maven 3 pour construire le projet. Après avoir basculé sur maven 2, j’ai eu l’erreur ci-dessus.

Résolu en passant à Maven 3.

Si vous verrouillez org.ow2.util.asm-asm-tree-3.1.jar et démarrez eclipse, la journalisation indique qui n’a pas pu verrouiller le fichier. La même ligne de code qui ne peut pas verrouiller le fichier ne libère pas le verrou.

En phase de pré-nettoyage, j’exécute avec le programme Maven Unlocker. Ce programme déverrouille tous les fichiers et répertoires pour n’importe quel programme.

Je l’exécute avec maven-antrun-plugin et seulement dans les systèmes Windows

    windows      maven-antrun-plugin 1.8   pre-clean          run        

Maven se plaint si vous ne disposez pas d’permissions d’administrateur sur le dossier cible. Vérifiez si vous disposez des droits d’administrateur pour supprimer ce dossier.

entrer la description de l'image ici

Si toutes les étapes (dans les réponses existantes) ne fonctionnent pas, fermez l’éclipse et ouvrez à nouveau l’éclipse.

J’ai résolu le mien en faisant:

  • mvn clean
  • mvn installer
  • installation propre mvn

Pour certaines raisons, cela a fonctionné pour moi. Bonne chance !!

J’ai eu ce problème en essayant d’appeler mvn clean install après avoir envoyé un email à un collègue avec le .jar de / target via Microsoft Outlook.

J’ai dû fermer Microsoft Outlook pour appeler mvn clean install .