Gradle 发布取决于使用 Kotlin dsl 的自定义任务

Pav*_*vel 6 gradle kotlin gradle-kotlin-dsl

对于 Gradle 构建,我正在从 groovy 切换到 Kotlin dsl (build.gradle.kts)。我的发布工件取决于我的自定义任务。而且我不明白如何在 Kotlin dsl 中建立这种依赖关系。

我喜欢迁移到 Kotlin dsl 的原始 groovy 代码:

publish.dependsOn doSomething
Run Code Online (Sandbox Code Playgroud)

我试图链接的任务:

val doSomething by tasks.creating(ShellExec::class) {
    command = "./do-something"
}

publishing {
    repositories {
        maven {
            ...
        }
    }

    publications {
        register("mavenJava", MavenPublication::class) {
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Str*_*lok 12

可以这样做

tasks.withType<PublishToMavenRepository> {
  dependsOn("doSomething")
}
Run Code Online (Sandbox Code Playgroud)