web-dev-qa-db-fra.com

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

J'utilise STS (Spring Tool Suite) + plugin maven.

Chaque fois que j'exécute mon application en utilisant maven-clean, l'erreur suivante apparaît:

[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 le redémarrage de STS, cela fonctionne, mais c’est un problème.

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

METTRE À JOUR
.__ pour Kalathoki L.

Je lance maven-clean à partir de cet état:

STS screen shot

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

Si je regarde déverrouiller lorsque STS est en cours d'exécution, je vois

unlocker screen shot:

55
user2740224

Arrêtez votre serveur avant de commencer à nettoyer.

Arrêter 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 Arrêtez le serveur  this icondans la barre d’outils. Dans la vue Serveurs, l’état du serveur Passe à Stopped.
  3. Si, pour une raison quelconque, le serveur ne parvient pas à s’arrêter, vous pouvez arrêter le processus De la manière suivante:

    une. Basculez vers la perspective de débogage.

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

    c. Cliquez sur Terminate  This is an image of the TerminateIcône dans la barre d’outils.

Remarque: Lors de la fermeture d'un serveur, le processus serveur prend fin et le serveur ne subit pas la routine normale d'arrêt, par exemple en appelant la méthode destroy () sur un servlet.

Source: Aide Eclipse

43
Yubaraj

Vous pouvez également essayer essayer -Dmaven.clean.failOnError=false (From Maven FAQ )

30
Bartosz Bilicki

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 l'exécution d'une commande mvn clean. Maven ne pourra pas supprimer ces fichiers (car d'autres processus y ont encore accès) et échouera donc avec cette erreur.

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

12
Scorpio

Il existe probablement de nombreux processus utilisant des sources compilées, par exemple un serveur, une ancienne instruction Maven ou un environnement de développement intégré. Terminez tous les processus, arrêtez le serveur, puis exécutez à nouveau maven. Si le problème persiste, vous devez fermer le processus Java.exe.

Cordialement!

7
Jhonatan Alarcon

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

6
Bibek Shrestha

Résumé: Utilisez un script externe (fichier de traitement par lots) qui a) arrête le serveur et b) déverrouille le fichier .jar avant d'exécuter maven-clean.

Pas:

  1. Liez le plugin maven-antrun-plug: but à la phase de pré-nettoyage de mvn clean. Voir comment faire cela ici

  2. Voyez comment utiliser le plugin antrun pour exécuter un fichier de traitement par lots externe sous Windows ici: Réponse de sblondy à "Démarrer un processus externe" . Appelons ce fichier unlock_handles.bat

  3. Utilisez l'utilitaire Sysinternals handledownload link 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 du travail, mais cela automatisera le processus de manière fiable pour que vous ayez à le faire manuellement vous-même à chaque fois!


OK, voici une version brute 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'accès à handle.exe de Sysinternals avant de l'essayer.

5
vijucat

J'ai le même problème et cela 

mvn clean install -U

la commande a corrigé l'erreur.

3
Amir

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

2
Neha

Essayez de désactiver Projet-> Construire automatiquement.

Comme Scorpio l'a suggéré, il existe un processus en cours qui verrouille un fichier quelque part.

J'ai un grand projet multi-modules Maven qui échoue régulièrement en mode minimal et cela le résout pour moi. Je réactive la création automatique lorsque j'ai terminé.

2
Davetron

J'ai résolu le mien en faisant: 

  • mVN propre
  • mVN installer 
  • mVN propre installer

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

1
Boris_Ndong

J'ai eu le même problème. Auparavant, j'utilisais Maven 3 pour construire le projet. Après être passé à Maven 2, j'ai eu l'erreur ci-dessus. 

Résolu en passant à Maven 3.

1
Madhu V Rao

Pour les utilisateurs de Linux: solution possible.

Erreur de construction en raison de "Echec de la suppression <any-file-or-folder>" se produira s'il existe par hasard un accès uniquement à la suppression fourni à root user plutôt qu'à normal-user .

Correction: tapez ll commande pour lister le fichier qui ne peut pas être supprimé, si le fichier a un accès root, passez à l'utilisateur normal comme suit: 

Sudo chown -R nom d'utilisateur: nom d'utilisateur nom de fichier

Plus tard, essayez Maven nettoyer et construire.

1
ram

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

1
Vijay Gupta

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

J'exécute cela avec maven-antrun-plugin et uniquement dans les systèmes Windows 

<profile>
  <activation>
    <os>
      <family>windows</family>
    </os>
  </activation>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <phase>pre-clean</phase>
            <configuration>
              <tasks>
                <exec dir="${project.build.directory}" executable="cmd" failonerror="false">
                  <arg value="Unlocker.exe" />
                  <arg value="/S" />
                </exec>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>
0
Raul Villalba

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 lâche pas le verrou.

0
Peter Rader

Maven se plaint si vous ne disposez pas des autorisations d'administrateur sur le dossier cible. Vérifiez si vous avez le droit d'administrateur pour supprimer ce dossier.

 enter image description here

0
reshma

Veuillez fermer tous les onglets du navigateur. Et la prochaine fois que vous essayez de télécharger war à partir d'un autre endroit que le dossier cible.

0
Atul Jain