android - Gradle 任务在不调用的情况下启动
问题描述
我正在尝试使用Dokka为 javadoc 和 kotlindoc构建 javadoc
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'
}
当我尝试执行 taskA 时,taskB 也会被执行。
Output:
>gradlew :Project:a
> Configure project :Project
Inside the task dokkaDoc
Starting task A
Starting task B
解决方案
通过添加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'
}
推荐阅读
- android - 如何通过 Google API 在 Android 地图中获取附近的血库?
- c# - 如何调用 web 方法来接受 POST
- node.js - ConversationUpdate 未从 Teams 机器人用户添加事件 NodeJs SDK v4 触发
- java - JPA:查询执行时间长的可能原因
- c - 从消息队列接收后无法使用 shm_open
- c++ - 返回不带类型参数的 std::make_unique
- user-interface - 动态填充 selectOneMenu 中的选项
- r - 如何使用 R 收集几个月前的推文?
- python - 在 Django 模型中添加一对多关系
- javascript - 填写表单数据后Javascript验证不起作用