Groovy 报错 Could not find method leftShift() for arguments 详细说明

在学习 Groovy 的时候,第一步很顺利

task hello {
    doLast {
        println 'Hello world!'
    }
}

在命令行里, 进入脚本所在的文件夹然后输入 gradle -q hello 来执行构建脚本:

gradle -q hello 的输出

> gradle -q hello
Hello world!

然后很开心的继续下一节

快捷的任务定义

build.gradle

task hello << {
    println 'Hello world!'
}

它定义了一个叫做 hello 的任务, 这个任务是一个可以执行的闭包. 我们将使用这种方式来定义这本指南里所有的任务.

可是当我们运行的时候编译却报错了

查了很多资料,发现有如下两种解决办法

task hello {
    println 'Hello world!'
}
或者
task hello {
    doLast{
        println 'Hello world!'
    }
}
验证发现确实是可以解决问题,而且第一种方式看上去更简单,但是使用后却发现第一种方式已经改变了原来的意思,第一种当运行脚本中任何一个任务的时候其他task都会被执行,因此 第二种才是正确的做法!

gradle版本说明中也解释了,gradle 5.0中 &lt;&lt; 已经过时了,即(<<),推荐使用doLast 来替代,也可以通过降低gradle版本来解决。

在此也给自己记录一下,遇到问题,虽然网上答案很多,还是希望以后可以找到真实的原因并解决问题。不要知其然不知其所以然。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值