如何在Gradle中基于Kotlin DSL的多项目构建中禁用distZip

如何在Gradle中基于Kotlin DSL的多项目构建中禁用distZip,gradle,build,kotlin,gradle-kotlin-dsl,Gradle,Build,Kotlin,Gradle Kotlin Dsl,我已经使用Kotlin DSL建立了一个Gradle多项目构建。这是根目录中的build.gradle.kts: plugins { kotlin("jvm") version "1.2.70" apply false } allprojects { repositories { mavenCentral() } } subprojects { version = "1.0" } 这是我的子项目中的sub/build.gradle.kts: pl

我已经使用Kotlin DSL建立了一个Gradle多项目构建。这是根目录中的
build.gradle.kts

plugins {
    kotlin("jvm") version "1.2.70" apply false
}

allprojects {
    repositories {
      mavenCentral()
    }
}

subprojects {
    version = "1.0"
}
这是我的子项目中的
sub/build.gradle.kts

plugins {
    application
    kotlin("jvm")
}

application {
    mainClassName = "me.package.MainKt"
}

dependencies {
    compile(kotlin("stdlib"))
    compile("io.github.microutils:kotlin-logging:1.6.10")
    compile("ch.qos.logback:logback-classic:1.2.3")
}
当我运行
$gradle build
时,
应用程序
插件在
子/构建/分发
中为我创建一个分发

我不需要zip发行版,我不希望tar发行版中有版本号。在常规的
build.gradle
中,两者都应该是微不足道的,比如:

distZip.enabled = false
distTar.archiveName = "${project.name}.tar" 
无论我尝试使用Kotlin DSL做什么,我都会得到
未解析的引用:distZip
。如何处理
distZip
distTar
任务

您需要的是:

val distZip by tasks
distZip.enabled = false
val distTar by tasks
distTar.archiveName = "${project.name}.tar" 
或:

tasks.getByName(“distZip”).enabled=false
tasks.getByName(“distTar”).archiveName=“${project.name}.tar”
tasks.getByName<Zip>("distZip").enabled = false
tasks.getByName<Tar>("distTar").archiveName = "${project.name}.tar"