相关疑难解决方法(0)

了解gradle任务定义中的groovy语法

我是Gradle和Groovy的新手,并且在定义gradle任务时试图了解groovy级别的情况.

task hello  { 
   println "configuring task hello" 
   doLast {
     println "hello there" 
   }
}
Run Code Online (Sandbox Code Playgroud)

通过阅读"Gradle In Action"一书,我知道这task hello {}task()对groovy Project界面方法的真正调用.在页77上,它显示在Project接口上有4个称为任务的方法

task(args: Map<String,?>, name:String)
task(args: Map<String,?>, name:String, c:Closure)
task(name: String)
task(name: String, c:Closure)
Run Code Online (Sandbox Code Playgroud)

我明白这{}是封闭体.

我不明白的是hello,task hello { }根据/sf/answers/1791486581/,groovy如何解释有一个groovy编译器插件转换task hello { }task('hello', { })

我的问题:

  • 在哪里可以找到有关转换的Gradle Groovy编译器插件的信息?

  • 是否Gradle脚本是groovy程序在技术上是不正确的,因为gradle以某种方式扩展了Groovy编程语言?

  • 有没有办法让gradle命令打印出编译器插件运行后生成的基本groovy代码?

groovy gradle

73
推荐指数
1
解决办法
5882
查看次数

为什么可以在gradle任务的名称中省略引号

我不明白为什么当我们声明它时,我们不需要为gradle任务的名称添加引号:

task hello (type : DefaultTask) {
}
Run Code Online (Sandbox Code Playgroud)

我试过一个时髦的项目,发现它是非法的,gradle是如何工作的.而且我不理解上面的表达式,为什么我们可以添加(type : DefaultTask),我们如何用groovy语法分析它?

groovy build-tools gradle

6
推荐指数
1
解决办法
410
查看次数

Gradle/Groovy语法和关键字

作为Gradle和Groovy的新手,我发现自己很难理解build.gradle脚本的语法.

我理解(至少我认为是这样)build.gradle是用作DSL的普通groovy代码,其中关键字在别处定义.

请解释一下不同的部分.摘自教程:

defaultTasks 'distribution'

task distribution << {
    println "We build the zip with version=$version"
}

task release(dependsOn: 'distribution') << {
    println 'We release now'
}

gradle.taskGraph.whenReady {taskGraph ->
    if (taskGraph.hasTask(release)) {
        version = '1.0'
    } else {
        version = '1.0-SNAPSHOT'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我知道println是一个功能.我知道引号中的文字是一个字符串.我想花括号中的东西是封闭的.但什么是发布/*发行*?它也是一个字符串吗?它是函数任务的参数吗?为什么我可以在hasTask(release)中使用它而不带引号?

那么exacly 什么:'defaultTasks','task','release','<<','gradle','whenReady',' - >'?

额外奖励:有没有一种常规方法可以找到自己?

groovy gradle

5
推荐指数
1
解决办法
2914
查看次数

标签 统计

gradle ×3

groovy ×3

build-tools ×1