gradle - Gradle:如何将一些常规代码转换为Kotlin

标签 gradle kotlin groovy gradle-kotlin-dsl

下面的常规代码在脚本build.gradle中运行良好:

task sourcesJar(type: Jar, dependsOn: classes) {
    from sourceSets.main.allSource
    classifier = 'sources'
}

artifacts {
    archives sourcesJar
}

我无法成功将其语法转换为kotlin build.gradle.kts。有人可以给我正确的翻译吗?

最佳答案

如果您使用的是Gradle 6,那么对java插件来说这是微不足道的:

plugins {
    java
}

java {
    withSourcesJar()
}

如果您使用的是Gradle的旧版本或无法升级,则需要按照上面的步骤定义任务:
plugins {
    java
}

val sourcesjar by tasks.registering(Jar::class) {
    from(sourceSets[SourceSet.MAIN_SOURCE_SET_NAME].allSource)
    // Use archiveClassifier on Gradle 5.1+ otherwise use classifier
    archiveClassifier.set("sources")
}

artifacts {
    archives(sourcesjar.get())
}

关于gradle - Gradle:如何将一些常规代码转换为Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231885/

相关文章:

jenkins - Gradle - 不同的任务使用不同的参数

java - 为什么两个不同的gradle-project java文件可以放入同一个包中?

kotlin - 如何访问顶级对象的字段?

kotlin - 如何使用runBlocking等待CoroutineScope完成

android - 可空性和使用 Kotlin 的 LiveData

java - gradle:封装自定义dsl的最佳方法

jenkins - 使用gradlew命令构建Android Flutter项目

android - "Error:(2) Error retrieving parent for item No resource found that matches the given name ' android :TextAppearance. Material.Widget.Button.Inverse'

groovy - protected Nexus 存储库的 Grape 配置

java - Groovy 不喜欢 Reflections 构造函数采用 null 参数