web-dev-qa-db-de.com

maven ... Fehler beim Bereinigen des Projekts: Fehler beim Löschen ..\org.ow2.util.asm-asm-tree-3.1.jar

Ich benutze STS (Spring Tool Suite) + Maven-Plugin.

Jedes Mal, wenn ich meine Anwendung mit maven-clean starte, sehe ich folgenden Fehler:

[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

Ich muss STS schließen und zu C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target gehen und org.ow2.util.asm-asm-tree-3.1.jar löschen.

Nach dem erneuten Starten von STS funktioniert es, aber dies ist umständlich.

Kannst du mir bei diesem Problem helfen?

UPDATE
für Kalathoki L.

Ich führe maven-clean von diesem Status aus:

STS screen shot

Ich sehe in der Befehlszeile dasselbe Verhalten wie im Eclipse-Plugin

Wenn ich Unlocker anschaue, während STS läuft, sehe ich

unlocker screen shot:

55
user2740224

Stoppen Sie Ihren Server, bevor Sie mit der Reinigung beginnen.

Stoppen eines Servers

Sie können den Server in der Serveransicht stoppen.

So stoppen Sie den Server:

  1. Wählen Sie in der Serveransicht ( Fenster> Ansicht anzeigen> Andere> Server> Server> OK ) den Server aus, den Sie anhalten möchten.
  2. Klicken Sie auf die Server stoppen  this iconin der Symbolleiste. In der Serveransicht ändert sich der Status des Servers In Gestoppt.
  3. Wenn der Server aus irgendeinem Grund nicht angehalten werden kann, können Sie den -Prozess wie folgt beenden:

    ein. Wechseln Sie in die Debug-Perspektive.

    b. Wählen Sie in der Prozessansicht den Serverprozess aus, den Sie stoppen möchten.

    c. Klicken Sie auf das Terminate  This is an image of the TerminateSymbol in der Symbolleiste.

Hinweis: Wenn Sie einen Server beenden, wird der Serverprozess beendet und der Server durchläuft nicht die normale Routine des Anhaltens, beispielsweise den Aufruf der destroy () - Methode für ein Servlet.

Quelle: Eclipse-Hilfe

43
Yubaraj

Versuchen Sie es auch mit -Dmaven.clean.failOnError=false (Von Maven FAQ ).

30
Bartosz Bilicki

Ihr Problem ist, dass ein laufender Prozess innerhalb von STS Dateien verwendet, die sich in Ihrem Zielverzeichnis befinden, während Sie einen mvn clean-Befehl ausführen. Maven kann diese Dateien nicht löschen (da andere Prozesse noch darauf zugreifen) und daher mit diesem Fehler fehlschlagen.

Versuchen Sie, alle Prozesse (Tests, Server, Anwendungen) in STS zu stoppen, bevor Sie die Maven-Konsolenbefehle ausführen. Achtung: Dieses Verhalten kann auch auftreten, wenn STS die Projekte bereinigt und somit die Quellen neu kompiliert und keinen Prozess ausführt.

12
Scorpio

Wahrscheinlich gibt es viele Prozesse, die kompilierte Quellen verwenden, beispielsweise ein Server, eine alte Maven-Anweisung oder eine IDE. Beenden Sie sicher alle Prozesse, stoppen Sie den Server und führen Sie dann erneut Maven aus. Wenn das Problem weiterhin besteht, sollten Sie den Prozess Java.exe schließen.

Grüße!

7

Löschen Sie den Java.exe-Prozess im Task-Manager und führen Sie mvn clean install aus. Das hat für mich funktioniert.

6
Bibek Shrestha

Summary: Verwenden Sie ein externes Skript (Batch-Datei), das a) den Server stoppt und b) die .jar-Datei vor dem Ausführen von maven-clean entsperrt.

Schritte:

  1. Binden Sie das Maven-Antrun-Plugin: Führen Sie das Ziel zur Vorreinigungsphase von mvn clean. Sehen Sie, wie das geht hier

  2. Hier erfahren Sie, wie Sie mit dem antrun-Plugin eine externe Batchdatei in Windows ausführen: die Antwort von sblundy auf "Externen Prozess starten" . Nennen wir diese Datei unlock_handles.bat.

  3. Verwenden Sie das Sysinternals-Handle -Dienstprogramm Downloadlink in der Datei pre_clean.bat, um a) den Tomcat-Server zu stoppen und b) die .jar-Datei zu entsperren. handle -c und handle -p wäre hier hilfreich.

Wütend! Das ist zwar ein bisschen Arbeit, aber es wird den Prozess für Sie zuverlässig automatisieren, so dass Sie es jedes Mal manuell durchführen müssen!


OK, hier ist eine grobe Proof-of-Concept-Version von unlock_handles.bat, die Sie ausprobieren können:

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

Natürlich müssen Sie den Pfad zu Sysinternals handle.exe ändern, bevor Sie es versuchen.

5
vijucat

Ich habe das gleiche Problem und dieses 

mvn clean install -U

befehl behoben den Fehler.

3
Amir

Schließen Sie den Zielordner und die Datei, die Sie vor der mvn clean geöffnet haben

2
Neha

Deaktivieren Sie die Option Projekt-> Automatisch erstellen.

Wie Scorpio vorschlug, gibt es einen Prozess, der irgendwo eine Datei sperrt.

Ich habe ein großes Multi-Modul-Maven-Projekt, das regelmäßig beim Reinigen fehlschlägt und das löst es für mich. Wenn ich fertig bin, aktiviere ich automatisch wieder.

2
Davetron

Ich löste meine, indem ich Folgendes tat: 

  • mvn sauber
  • mvn installieren 
  • mvn sauber installieren

Aus einigen Gründen hat es für mich funktioniert. Viel Glück !!

1
Boris_Ndong

Ich hatte ein ähnliches Problem. Früher habe ich Maven 3 verwendet, um das Projekt zu erstellen. Nach dem Umstieg auf Maven 2 hatte ich den oben genannten Fehler. 

Gelöst durch Umstellung auf Maven 3.

1
Madhu V Rao

Für Linux-Benutzer: Mögliche Lösung.

Erstellungsfehler aufgrund von "Fehler beim Löschen von Dateien oder Ordnern>" tritt auf, wenn nur der Löschzugriff für root user statt für normal-user verfügbar ist. .

Fix: Geben Sie ll Befehl ein, um eine Datei aufzulisten, die nicht gelöscht werden kann. Wenn der Datei Root-Zugriff gewährt wird, wechseln Sie zum normalen Benutzer: 

Sudo chown -R Benutzername: Benutzername Dateiname

Versuchen Sie es später mit Maven Clean und Build.

1
ram

Wenn alle Schritte (in vorhandenen Antworten) nicht funktionieren, schließen Sie einfach Eclipse und öffnen Sie Eclipse erneut.

1
Vijay Gupta

In der Vorreinigungsphase werde ich mit dem Maven Unlocker-Programm ausgeführt. Dieses Programm entsperrt alle Dateien und Verzeichnisse für alle Programme.

Ich führe das mit maven-antrun-plugin und nur in Windows-Systemen aus 

<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

Wenn Sie org.ow2.util.asm-asm-tree-3.1.jar sperren und Eclipse starten, zeigt die Protokollierung an, wer die Datei nicht sperren konnte. Dieselbe Codeline, die die Datei nicht sperren kann, gibt die Sperre nicht frei.

0
Peter Rader

Maven beschwert sich, wenn Sie keine Administratorrechte für den Zielordner haben. Überprüfen Sie, ob Sie über Administratorrechte verfügen, um diesen Ordner zu löschen.

 enter image description here

0
reshma

Bitte schließen Sie alle Browser-Tabs. Und das nächste Mal, wenn Sie versuchen, Krieg von einem anderen Ort als dem Zielordner hochzuladen.

0
Atul Jain