https://blog.csdn.net/Gdeer/article/details/83062523
一、直接运行 groovy 程序
因为 groovy 插件和 android 插件不兼容,所以不能在原始项目上使用 groovy。
新建 module,创一个 Java Library,取名 lib。
修改 lib/build.gradle
apply plugin: 'java-library'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
改为:
apply plugin: 'groovy'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation localGroovy()
}
apply plugin: 'groovy'
会引入 groovy 插件,groovy 插件继承了 java 插件。
implementation localGroovy()
会引入 Gradle 所带的 Groovy 库。
apply plugin: 'groovy'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation localGroovy()
}
//task renameGroovyToJava {
// doLast {
// delete "$buildDir/classes/java"
// File file = new File("$buildDir/classes/groovy")
// // file.name = "java" 不行,会报错
// println file.renameTo("$buildDir/classes/java")
// }
//}
task haveFun{
doLast{
println "Module:lib have fun!"
}
}
//compileJava.finalizedBy compileGroovy
//compileGroovy.finalizedBy renameGroovyToJava
compileGroovy.finalizedBy haveFun
===============================================================
apply plugin: 'groovy'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation localGroovy()
}
//task renameGroovyToJava {
// doLast {
// delete "$buildDir/classes/java"
// File file = new File("$buildDir/classes/groovy")
// // file.name = "java" 不行,会报错
// println file.renameTo("$buildDir/classes/java")
// }
//}
task haveFun{
doLast{
// println "Module:lib have fun!"
// //定义一个集合类型
// def list=['a','b']
// //往list中添加元素
// list<<'c'
// //取出list中第三个元素
// println(list.get(2))
// //定义一个map
// def map=['key1':'value1','key2':'value2']
// //向map中添加键值对
// map.key3='value3'
// //打印出key3的值
// println(map.get('key3'))
}
}
//compileJava.finalizedBy compileGroovy
//compileGroovy.finalizedBy renameGroovyToJava
//compileGroovy.finalizedBy haveFun
// println "Module:lib have fun!"
// //定义一个集合类型
// def list=['a','b']
// //往list中添加元素
// list<<'c'
// //取出list中第三个元素
// println(list.get(2))
// //定义一个map
// def map=['key1':'value1','key2':'value2']
// //向map中添加键值对
// map.key3='value3'
// //打印出key3的值
// println(map.get('key3'))
//groovy中的闭包
//什么是闭包?闭包其实就是一段代码块。在gradle中,我们主要是把闭包当做参数来使用
//定义一个闭包
def b1 = {
println('hello b1')
}
//定义一个方法,方法里面需要闭包类型的参数
def method1(Closure closure){
closure()
}
//调用方法method1
method1(b1)