java - tool - sts
maven... Error al limpiar el proyecto: no se pudo eliminar.. / org.ow2.util.asm-asm-tree-3.1.jar (17)
Cierre la carpeta de destino y su archivo que ha abierto antes de mvn clean
Utilizo el complemento STS (juego de herramientas de primavera) + maven.
Cada vez que ejecuto mi aplicación usando maven-clean
veo el siguiente error:
[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
Tengo que cerrar STS e ir a C:/Users/Nikolay_Tkachev/workspace/HHSystem/UI/target
y eliminar org.ow2.util.asm-asm-tree-3.1.jar
Después de iniciar STS otra vez, funciona, pero es una molestia.
¿Puedes ayudarme con este problema?
ACTUALIZAR
para Kalathoki L.
Corro maven-clean
desde este estado:
Veo el mismo comportamiento desde la línea de comando a partir del plugin eclipse
Si miro el desbloqueo cuando STS se está ejecutando, veo
:
Detenga su servidor antes de comenzar a limpiar.
Detener un servidor
Puede detener el servidor desde la vista Servidores.
Para detener el servidor:
- En la vista Servidores ( Ventana> Mostrar vista> Otro> Servidor> Servidores> Aceptar ), seleccione el servidor que desea detener.
- Haga clic en Detener el servidor ícono en la barra de herramientas. En la vista Servidores, el estado del servidor cambia a Detenido.
Si por alguna razón el servidor no se detiene, puede finalizar el proceso de la siguiente manera:
a. Cambia a la perspectiva de depuración.
segundo. En la vista Proceso, seleccione el proceso del servidor que desea detener.
do. Haga clic en Terminar ícono en la barra de herramientas.
Nota: Al finalizar un servidor, el proceso del servidor finalizará y el servidor no pasará por la rutina normal de detención, por ejemplo llamando al método destroy () en un servlet.
Fuente: Ayuda de Eclipse
Elimine el proceso java.exe en el Administrador de tareas y ejecute mvn clean install. Funcionó para mí.
En la fase de pre-limpieza, ejecuto con el programa Maven Unlocker. Este programa desbloquea todos los archivos y el directorio de cualquier programa.
Ejecuto esto con maven-antrun-plugin y solo en sistemas de 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>
Probablemente hay muchos procesos que usan fuentes compiladas, podría ser un servidor, una instrucción maven antigua o IDE. Asegúrese de finalizar todos los procesos, detenga el servidor y luego ejecute Maven nuevamente. Si el problema persiste, debe cerrar el proceso java.exe.
¡Saludos!
Pruebe a deshabilitar Project-> Build Automatically.
Como sugirió Scorpio, hay un proceso en ejecución que tiene un bloqueo en algún lugar.
Tengo un gran proyecto maven multi-módulo que regularmente falla en limpiar y esto lo resuelve por mí. Rehabilito la compilación automáticamente cuando termino.
Si bloquea org.ow2.util.asm-asm-tree-3.1.jar
y comienza eclipse, el registro muestra quién no pudo bloquear el archivo. La misma línea de código que no puede bloquear el archivo no liberará el bloqueo.
Si todos los pasos (en las respuestas existentes) no funcionan, solo cierre el eclipse y nuevamente abra Eclipse.
Su problema es que un proceso en ejecución dentro de STS está usando archivos ubicados en su directorio de destino mientras ejecuta un comando mvn clean
. Maven no podrá eliminar estos archivos (ya que otros procesos todavía están accediendo a ellos) y, por lo tanto, fallarán con ese error.
Intente detener todos los procesos (pruebas, servidores, aplicaciones) desde STS antes de ejecutar los comandos de la consola Maven. Cuidado: este comportamiento también podría aparecer si STS está limpiando los proyectos y, por lo tanto, vuelve a compilar las fuentes y no ejecuta un proceso.
También puedes intentar -Dmaven.clean.failOnError=false
(de Maven FAQ )
Tengo el mismo problema y esto
mvn clean install -U
comando solucionó el error.
Tuve este problema al intentar llamar a mvn clean install
después de enviar un correo electrónico a un compañero de trabajo con .jar from / target a través de Microsoft Outlook.
Tuve que cerrar Microsoft Outlook para llamar a mvn clean install
.
Tuve un problema similar. Antes estaba usando Maven 3 para construir el proyecto. Después de cambiar a maven 2, tuve el error anterior.
Lo resolvió cambiando a Maven 3.
Yo resolví el mío haciendo:
- mvn limpio
- mvn instalar
- mvn instalación limpia
Por algunas razones, funcionó para mí. Buena suerte !!
Para usuarios de Linux: posible solución.
Se producirá un error de compilación debido a "No se pudo eliminar <any-file-or-folder>" si existe la posibilidad de que solo se proporcione acceso de eliminación al usuario root en lugar del usuario normal .
Arreglo: escriba el comando ll para listar el archivo que no se puede eliminar, si el archivo tiene acceso de root, cambie al usuario normal por:
sudo chown -R nombre-usuario: nombre-de-usuario nombre-archivo
Más tarde prueba para maven clean y build.
Resumen: utilice un script externo (archivo por lotes) que a) detiene el servidor yb) Desbloquea el archivo .jar antes de ejecutar maven-clean.
Pasos:
Vincula el maven-antrun-plugin: ejecuta el objetivo a la fase de pre-limpieza de mvn clean. Vea cómo hacer esto here
Vea cómo usar el plugin antrun para ejecutar un archivo por lotes externo en Windows aquí: respuesta de sblundy a "Starting external process" . Vamos a llamar a este archivo
unlock_handles.bat
Utilice el enlace de descarga de la herramienta de manejo Sysinternals en pre_clean.bat para a) detener el servidor Tomcat y b) desbloquear el archivo .jar.
handle -c
yhandle -p
serían útiles aquí.
¡Uf! Eso es un poco de trabajo, pero automatizará de manera confiable el proceso para usted, ¡de modo que necesita hacerlo manualmente usted mismo cada vez!
OK, aquí hay una versión aproximada de prueba de concepto de unlock_handles.bat para que pruebes:
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
Por supuesto, debe cambiar la ruta de Sysinternals ''handle.exe antes de intentarlo.