Задание Gradle начинается без вызова - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь собрать javadoc, используя Dokka для javadoc и kotlindoc

task dokkaDoc(type: org.jetbrains.dokka.gradle.DokkaAndroidTask) {

    println("Inside the task dokkaDoc")

    moduleName = 'data'
    outputFormat = 'javadoc'
    outputDirectory = "$buildDir/docs/javadoc"

}



task taskA(type: Zip, dependsOn: dokkaDoc) {
    println("Starting task A")
    classifier 'dokkaDoc'
    extension "zip"
    from "$buildDir/docs/kotlindoc"
    archiveName 'a.zip'
}

task taskB(type: Zip, dependsOn: dokkaDoc) {

    println("Starting task B")
    classifier 'dokkaDoc'
    extension "zip"
    from "$buildDir/docs/kotlindoc"
    archiveName 'b.zip'

}

Когда я пытаюсь выполнить задачу А, задача Б также выполняется.

Output:
>gradlew :Project:a

> Configure project :Project
Inside the task dokkaDoc
Starting task A
Starting task B

1 Ответ

0 голосов
/ 12 июня 2019

При добавлении println к определению задачи они печатаются во время конфигурации, а не во время выполнения

Вы можете изменить это, чтобы печатать только при выполнении задачи, добавив в задачу блок doFirst или doLast:

task dokkaDoc(type: org.jetbrains.dokka.gradle.DokkaAndroidTask) {
    doFirst {
        println "Running the task dokkaDoc"
    }
    moduleName = 'data'
    outputFormat = 'javadoc'
    outputDirectory = "$buildDir/docs/javadoc"
}

task taskA(type: Zip, dependsOn: dokkaDoc) {
    doFirst {
        println "Starting task A"
    }
    classifier 'dokkaDoc'
    extension "zip"
    from "$buildDir/docs/kotlindoc"
    archiveName 'a.zip'
}

task taskB(type: Zip, dependsOn: dokkaDoc) {
    doFirst {
        println "Starting task B"
    }
    classifier 'dokkaDoc'
    extension "zip"
    from "$buildDir/docs/kotlindoc"
    archiveName 'b.zip'
}
...