Как отключить distZip в мультипроектных сборках на Kotlin DSL в Gradle - PullRequest
0 голосов
/ 16 октября 2018

Я установил мультипроектную сборку Gradle с использованием Kotlin DSL.Это 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, плагин application создает меняраспределение в sub/build/distribution.

Мне не нужен zip-дистрибутив, и я не хочу номер версии в tar-дистрибутиве.И то, и другое должно быть тривиальным в обычном build.gradle, например:

distZip.enabled = false
distTar.archiveName = "${project.name}.tar" 

Что бы я ни пытался использовать Kotlin DSL, я получаю Unresolved reference: distZip.Как мне решить задачи distZip и distTar?

1 Ответ

0 голосов
/ 16 октября 2018

Что вам нужно:

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

или:

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