问题描述
项目使用 ./gradle build
去打包,报错 Cannot add task 'wrapper' as a task with that name already exists
,使用 ./gradle clean
,同样报错,使用linux服务器。
Configuration on demand is an incubating feature.
FAILURE: Build failed with an exception.
* Where:
Build file '/root/xxx/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating root project 'xxx'.
> Cannot add task 'wrapper' as a task with that name already exists.
* 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
解决方法
Cannot add task 'wrapper' as a task with that name already exists
,这个报错是因为执行 gradle wrapper
失败,而 gradle wrapper
作用是生成 gradlew
执行文件,生成后通过 gradlew
来执行 gradle
的操作。如果 gradlew
已经生成,就会报这个错误。
改执行 ./gradlew build
成功。
反思
这个简单的问题,我一直没有解决,因为我们有 build.sh
可以自动化打包,对这个报错习以为常,导致我认为这个问题很艰难,很难解决。这次 build
失败需要 clean
操作导致我必须去面对这个问题,而思想的惯式让我认为这个问题不可解决,于是去寻求别的解决方式,做了大量无用功。归根原因在于对项目的技术不深入了解,抱着能跑起来,能开发就行的心态。遇到问题还是要去解决,而不是想着规避,规避多了会自我设置障碍,认为问题无法解决。问题多了,开发流程变得像黑盒一样,一遇见问题就太难解决了,只能做重复搬砖工。