以下代码定义了4个gradle任务:
4.times { counter ->
task "task$counter" << {
println "I'm task number $counter"
}
}
Run Code Online (Sandbox Code Playgroud)
但什么是<<运营商?它在groovy中做了什么?
我在gradle中定义一个任务:
task releaseCandidate(type: Exec) {
commandLine 'git', 'checkout', 'develop'
// Increment version code in Manifest
String manifest = new File('AndroidManifest.xml').getText('UTF-8')
Pattern pattern = Pattern.compile('android:versionCode="([0-9]+)"')
Matcher matcher = pattern.matcher(manifest)
matcher.find()
int newVersionCode = Integer.parseInt(matcher.group(1)) + 1
manifest = manifest.replaceAll(
"android:versionCode=\"([0-9]+)\"", "android:versionCode=\"$newVersionCode\""
)
new File('AndroidManifest.xml').write(manifest, 'UTF-8')
commandLine 'git', 'diff'
}
Run Code Online (Sandbox Code Playgroud)
只有当我明确地将其称为时,我才想执行它gradle releaseCandidate.但是,当我运行任何其他任务时,例如gradle assembleDebug,它还会运行任务releaseCandidate.我不希望这种行为发生.没有任务取决于releaseCandidate,反之亦然.
我的项目是一个Android应用程序,所以我使用的是androidgradle插件.
我在一些代码中看到了我无法理解<<的目的,就像在下面的示例代码中一样
def renderFiles(args) {
def model = []
args.each { fileArgs ->
model << createModel(fileArgs.id,fileArgs.path,fileArgs.ext)
}
render view:'show', model: [files:model]
}
Run Code Online (Sandbox Code Playgroud)