我使用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
:
我从命令行看到与eclipse插件相同的行为
如果我在STS运行时观看解锁器,我会看到
:
答案 0 :(得分:44)
在开始清理之前停止服务器。
停止服务器
您可以从“服务器”视图中停止服务器。
停止服务器:
如果由于某种原因服务器无法停止,您可以终止 过程如下:
一个。切换到Debug透视图。
湾在“进程”视图中,选择要停止的服务器进程。
℃。点击终止 工具栏中的图标。
注意:当终止服务器时,服务器进程将结束,服务器将不会经历正常的停止例程,例如在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文件。
<强>步骤:强>
绑定maven-antrun-plugin:将目标运行到mvn clean的预清洁阶段。了解如何执行此操作here
了解如何使用antrun插件在Windows中运行外部批处理文件:sblundy's answer to "Starting external process"。我们将此文件称为 unlock_handles.bat
使用pre_clean.bat中的 Sysinternals句柄实用程序download link来a)停止Tomcat服务器并b)解锁.jar文件。 handle -c
和 handle -p
在这里很有用。
呼!这有点工作,但它会为您自动完成整个过程,因此您每次都需要自己手动完成!
好的,这是一个粗略的,概念验证版本的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)
我解决了我的问题:
出于某些原因,它对我有用。祝你好运!!
答案 13 :(得分:0)
如果您有一个使用打包应用程序运行的进程,如 ftp 或 ssh 会话部署 - 它可以防止资源被删除或移动:
因此确定使用war或jar的开放端口,关闭它 - 然后重新启动
<块引用>sftp - ssh 端口:22
<块引用>ssh 端口:取决于配置
答案 14 :(得分:0)
答案 15 :(得分:0)
通过手动删除目标文件夹来解决。
答案 16 :(得分:0)
此错误的原因是,某些进程正在使用maven试图删除的文件。这样的过程的一个例子是Eclipse或任何其他IDE正在同一项目上进行验证。
请确保没有从Eclipse或任何其他打开项目的IDE中运行验证。
答案 17 :(得分:0)
如果在类似Eclipse或IntelliJ的IDE中遇到此错误,则可能有一个或多个调试窗口打开并在断点处暂停。终止它们。
答案 18 :(得分:0)
请关闭所有浏览器标签。下次当您尝试从目标文件夹以外的其他位置上载战争时。
答案 19 :(得分:0)
答案 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
。