Dante_7
本帖最后由 凋灵兔子 于 2019-5-3 15:29 编辑

我发现一个奇怪的现象: 每次我遇到解决不了的问题, 百度谷歌全都跪了, 就是找不到解决办法, 但是只要我张嘴问, 就算没有回答也会在能在几分钟之内突然灵光一现, 自行找到解决办法....= =, 这种事情已经发生n次了...该不会有魔法...这里就是调用方式不对, 改成 project.delete('haha')就行了....锭大家领了吧(补充一下: 还是别领了吧...领了的同学全被发卡了......)~



请问各位 dalao, 在 build.gradle 中添加如下代码:
  1. class PluginDemo implements Plugin<Project> {

  2.     @Override
  3.     void apply(Project project) {

  4.         def groupName = 'test'

  5.         project.task('test') {
  6.             group=groupName

  7.             delete 'haha'
  8.         }
  9.     }
  10. }
  11. apply plugin: PluginDemo
复制代码
调用 delete 删掉文件夹, 但是运行时提示: Could not find method delete() for arguments [haha] on task ':t2' of type org.gradle.api.DefaultTask
而我已经添加了 gradleApi 的依赖:
  1. dependencies {
  2.     testCompile group: 'junit', name: 'junit', version: '4.12'
  3.     testCompile localGroovy()
  4.     testCompile gradleApi()
  5. }
复制代码

.....新人刚开始用这个...求各位 dalao 帮帮忙...QAQ


差点导致吞锭.....


bailiyixi
那我就……不客气了?丝毫不懂编程的萌新路过帮顶(看了版规好像没事)

inuEbisu
  1. project.delete('haha')
复制代码

调用方式不对可还行……=▽=

gooding300
1.delete方法是Project的实例project所拥有的。
https://docs.gradle.org/current/ ... ava.lang.Object...-

2.project.task后面跟随的大括号可以说是闭包,但作为JVM语言就需要遵循Java虚拟机的规范,JVM可没有闭包一说,本质上是一个实现了Action,这里面直接执行的方法是在Task下面的,而不是Project下面的。
https://docs.gradle.org/current/ ... .gradle.api.Action-

综上,需要使用project.delect而不是delete

(合格的拿金锭姿势)

pao_
感谢大大的教程

xiaodudu114
请看这两个解决
点我
还有这个

yujm4623
万分感谢大佬教程