maven ...无法清理项目:无法删除.. \ org.ow2.util.asm-asm-tree-3.1.jar

时间:2013-10-21 08:39:52

标签: java eclipse spring maven spring-tool-suite

我使用STS(弹簧工具套件)+ maven插件。

每当我使用maven-clean运行我的应用程序时,我都会看到以下错误:

[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

我必须关闭STS并转到C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target并删除org.ow2.util.asm-asm-tree-3.1.jar

再次启动STS后,它可以正常工作,但这很麻烦。

你能帮我解决这个问题吗?

更新
为Kalathoki L。

我从这个状态运行maven-clean

STS screen shot

我从命令行看到与eclipse插件相同的行为

如果我在STS运行时观看解锁器,我会看到

unlocker screen shot

23 个答案:

答案 0 :(得分:44)

在开始清理之前停止服务器。

停止服务器

您可以从“服务器”视图中停止服务器。

停止服务器:

  1. 在“服务器”视图中(窗口>显示视图>其他>服务器> 服务器>单击确定),选择要停止的服务器。
  2. 点击停止服务器 this图标 在工具栏中。在Servers视图中,显示服务器的状态 更改为已停止。
  3. 如果由于某种原因服务器无法停止,您可以终止 过程如下:

    一个。切换到Debug透视图。

    湾在“进程”视图中,选择要停止的服务器进程。

    ℃。点击终止 This is an image of the Terminate 工具栏中的图标。

  4. 注意:当终止服务器时,服务器进程将结束,服务器将不会经历正常的停止例程,例如在servlet上调用destroy()方法。

    来源: Eclipse帮助

答案 1 :(得分:30)

您也可以尝试尝试-Dmaven.clean.failOnError=false (来自Maven FAQ

答案 2 :(得分:12)

您的问题是,在执行mvn clean命令时,STS中正在运行的进程正在使用位于目标目录中的文件。 Maven将无法删除这些文件(因为其他进程仍在访问它们),因此失败并出现该错误。

在运行Maven控制台命令之前,尝试从STS中停止所有进程(测试,服务器,应用程序)。注意:如果STS正在清理项目并因此重新编译源,而不是运行进程,则可能会出现此行为。

答案 3 :(得分:9)

删除任务管理器中的java.exe进程并运行mvn clean install。它对我有用。

答案 4 :(得分:7)

可能有很多进程使用编译的源,可能是服务器,旧的maven指令或IDE。确定终止所有进程,停止服务器,然后再次执行maven。如果问题仍然存在,则应关闭java.exe进程。

问候!

答案 5 :(得分:5)

摘要:使用a)停止服务器的外部脚本(批处理文件)和b)在运行maven-clean之前解锁.jar文件。

<强>步骤:

  1. 绑定maven-antrun-plugin:将目标运行到mvn clean的预清洁阶段。了解如何执行此操作here

  2. 了解如何使用antrun插件在Windows中运行外部批处理文件:sblundy's answer to "Starting external process"。我们将此文件称为 unlock_handles.bat

  3. 使用pre_clean.bat中的 Sysinternals句柄实用程序download link来a)停止Tomcat服务器并b)解锁.jar文件。 handle -c handle -p 在这里很有用。

  4. 呼!这有点工作,但它会为您自动完成整个过程,因此您每次都需要自己手动完成!


    好的,这是一个粗略的,概念验证版本的unlock_handles.bat供您试用:

    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
    

    当然,在尝试之前,您必须更改Sysinternals的handle.exe的路径。

答案 6 :(得分:4)

我有同样的问题,这个

mvn clean install -U

命令修复了错误。

答案 7 :(得分:4)

关闭目标文件夹及其在mvn clean

之前打开的文件

答案 8 :(得分:4)

尝试禁用Project-&gt;自动构建。

正如天蝎座建议的那样,有一个进程在某个地方锁定文件。

我有一个大型多模块maven项目经常无法清理,这为我解决了这个问题。 我完成后自动重新启用Build。

答案 9 :(得分:1)

我有类似的问题。之前我使用Maven 3来构建项目。切换到maven 2后,我遇到了上述错误。

通过切换到Maven 3来解决它。

答案 10 :(得分:1)

对于linux用户:可能的解决方案。

由于&#34而导致构建错误;无法删除&lt;任何文件或文件夹&gt;&#34; 如果只有删除访问权限提供给 root 用户而非普通用户

修复:输入 ll 命令列出无法删除的文件,如果文件具有root访问权限,则通过以下方式更改为普通用户:

  

sudo chown -R用户名:用户名文件名

稍后尝试清理和构建maven。

答案 11 :(得分:1)

如果所有步骤(在现有答案中)都不起作用,只需关闭eclipse并再次打开eclipse。

答案 12 :(得分:1)

我解决了我的问题:

  • mvn clean
  • mvn install
  • mvn clean install

出于某些原因,它对我有用。祝你好运!!

答案 13 :(得分:0)

<块引用>

如果您有一个使用打包应用程序运行的进程,如 ftp 或 ssh 会话部署 - 它可以防止资源被删除或移动:

因此确定使用war或jar的开放端口,关闭它 - 然后重新启动

<块引用>

sftp - ssh 端口:22

<块引用>

ssh 端口:取决于配置

答案 14 :(得分:0)

  1. 我关闭了 Git Bash(可能是您正在使用的另一个终端)。它停止进程
  2. 删除 ...0.0.1-SNAPSHOT.jar
  3. mvn clean install(或其他启动项目命令;我们有 .sh)

答案 15 :(得分:0)

通过手动删除目标文件夹来解决。

答案 16 :(得分:0)

此错误的原因是,某些进程正在使用maven试图删除的文件。这样的过程的一个例子是Eclipse或任何其他IDE正在同一项目上进行验证。

请确保没有从Eclipse或任何其他打开项目的IDE中运行验证。

答案 17 :(得分:0)

如果在类似Eclipse或IntelliJ的IDE中遇到此错误,则可能有一个或多个调试窗口打开并在断点处暂停。终止它们。

答案 18 :(得分:0)

请关闭所有浏览器标签。下次当您尝试从目标文件夹以外的其他位置上载战争时。

答案 19 :(得分:0)

如果您对目标文件夹没有管理员权限,Maven会抱怨。如果您有管理员权限删除该文件夹,请查看。

enter image description here

答案 20 :(得分:0)

如果您锁定org.ow2.util.asm-asm-tree-3.1.jar并启动eclipse,则日志记录会显示无法锁定文件的人员。无法锁定文件的相同代码行不会释放锁定。

答案 21 :(得分:-1)

对我来说

mvn install
mvn clean install

工作..

答案 22 :(得分:-3)

在通过Microsoft Outlook向同事发送带有.jar的电子邮件后,尝试拨打mvn clean install时遇到此问题。

我必须关闭Microsoft Outlook才能拨打mvn clean install

相关问题