在用 Gradle 编译 Grails 项目时,gradle 总是占用 plugn 生成的 jar 文件,导致后面无法执行 clean 命令。
错误提示
> Task :chess_plugin:clean FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':chess_plugin:clean'.
> Unable to delete file: D:\projects\chess\code\chess_plugin\build\libs\chess_plugin-0.1.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
4 actionable tasks: 3 executed, 1 up-to-date
解决办法:
手工kill掉 gradle 的 java 进程。这是 gradle 的一个老bug,我们可以添加配置,禁用 gradle daemon。
disable gradle daemon,像这样:
编辑 gradlew.bat 或者 grailsw.bat
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Dorg.gradle.daemon=false
或者先运行一次 gradle --stop 然后再执行 gradle clean 就可以了。