ant - 使用 gradle-script-kotlin 中的 ant 任务

标签 ant kotlin patch gradle-kotlin-dsl

如何从我的 build.gradle.kts 脚本访问 ant 任务?特别是,我对 ant.patch 任务很感兴趣。

我可以像这样扩展它吗?

task("patchSources", Patch::class) {

我可以像这样从其他任务调用它吗?

task("patchSources") {
    doLast {
        ant.patch(...)
    }
}

我知道如何在 Groovy 中做到这一点:How do I apply a patch file in Gradle?

最佳答案

AntBuilder继承自 Groovy 的 AntBuilder .您可以通过使用 invokeMethod 并提供所需的任务作为第一个参数并将要绑定(bind)的属性作为映射在第二个参数中。

例如,对于您的补丁用例 (available properties documentation),Kotlin 可能如下所示:

val patchSources by tasks.creating {
  doLast {
    ant.invokeMethod("patch", mapOf(
        "patchfile" to patchFile,
        "dir" to configDir,
        "strip" to 1
    ))
  }
}

关于ant - 使用 gradle-script-kotlin 中的 ant 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40791793/

相关文章:

git - 如何应用 .diff 文件

scripting - ANT脚本处理从exec返回值

android - IO异常 : AsyncTask Image Download Kotlin Android (Bad File Descriptor)

android - 将编译器标志添加到标准的 android build.xml

Java 互操作性 : how to declare a compile-time array constant in Kotlin?

java - 不幸的是 MyApp 已经停止。我该如何解决这个问题?

maven - 如何使用片段插件修补 eclipse 插件并将其部署到我的 eclipse 产品中?

git - 将 svn 补丁应用到 git 存储库

macos - 如何抽象ant-contrib跨平台?

xml - Findbugs XML 报告缺少排名