IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> gradle--groovy-dsl和kotlin-dsl对比 -> 正文阅读

[移动开发]gradle--groovy-dsl和kotlin-dsl对比

gradle–groovy-dsl和kotlin-dsl对比

常用对比

  • groovy可以适用单引号和双引号,而kotlin只能使用双引号
  • groovy运行在函数调用时省略括号,而kotlin必须加上括号
  • groovy在赋值时可以省略等于号,而kotlin必须加上等号
  • 为了减少迁移成本,在groovy时就应该约定使用双引号,调用加上括号,使用等号赋值

插件引用对比

  • Groovy DSL有两种方式去引用插件:
    • 1 plugins{} //强烈推荐
    • 2 apply plugin
  • 注意,核心插件可以用短名称,非核心插件必须声明id和version(Gradle - Plugins)
//groovy dsl
plugins {
    id 'java' //核心插件,可以省略version
    id 'jacoco'
    id 'maven-publish'
    id 'org.springframework.boot' version '2.4.1'
}
//kotlin dsl
plugins {
    java //核心插件,可以直接用短名称
    jacoco
    `maven-publish`
    id("org.springframework.boot") version "2.4.1"
}
//groovy dsl
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'org.springframework.boot'
//kotlin dsl
apply(plugin = "java")
apply(plugin = "jacoco")
apply(plugin = "org.springframework.boot")

//另外还有这种写法
apply<ExamplePlugin>()

gradle脚本引用对比

  • groovy
apply from: 'other.gradle'
  • kotlin
apply(from = "other.gradle.kts")

任务task对比

配置任务

// groovy-dsl
tasks.jar {
    archiveFileName = 'foo.jar'
}

tasks.named('jar') {
    archiveFileName = 'foo.jar'
}

tasks.getByName('jar') {
    archiveFileName = 'foo.jar'
}
// kotlin-dsl
tasks.jar {
    archiveFileName.set("foo.jar")
}

tasks.named<Jar>("jar") {
    archiveFileName.set("foo.jar")
}

tasks.getByName<Jar>("jar") {
    archiveFileName.set("foo.jar")
}

创建任务

// groovy-dsl
task greeting {
    doLast { println 'Hello, World!' }
}

tasks.create('greeting') {
    doLast { println('Hello, World!') }
}

tasks.register('greeting') {
    doLast { println('Hello, World!') }
}

tasks.register('docZip', Zip) {
    archiveFileName = 'doc.zip'
    from 'doc'
}

tasks.create(name: 'docZip', type: Zip) {
    archiveFileName = 'doc.zip'
    from 'doc'
}
// kotlin-dsl
task("greeting") {
    doLast { println("Hello, World!") }
}

tasks.create("greeting") {
    doLast { println("Hello, World!") }
}

tasks.register("greeting") {
    doLast { println("Hello, World!") }
}

tasks.register<Zip>("docZip") {
    archiveFileName.set("doc.zip")
    from("doc")
}

tasks.create<Zip>("docZip") {
    archiveFileName.set("doc.zip")
    from("doc")
}

依赖对比

// groovy-dsl
plugins {
    id 'java-library'
}
dependencies {
    implementation 'com.example:lib:1.1'
    runtimeOnly 'com.example:runtime:1.0'
    testImplementation('com.example:test-support:1.3') {
        exclude(module: 'junit')
    }
    testRuntimeOnly 'com.example:test-junit-jupiter-runtime:1.3'
}
// kotlin-dsl
plugins {
    `java-library`
}
dependencies {
    implementation("com.example:lib:1.1")
    runtimeOnly("com.example:runtime:1.0")
    testImplementation("com.example:test-support:1.3") {
        exclude(module = "junit")
    }
    testRuntimeOnly("com.example:test-junit-jupiter-runtime:1.3")
}

参考

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:32:44  更:2022-04-09 18:35:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:44:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码