ant - 在执行过程中对ant目标执行Gradle doFirst

标签 ant gradle

我试图覆盖一个预先建立的古老的 Ant 脚本。由于某些原因,我无法直接编辑ant文件。

----------- Gradle任务的伪--------

ant.importBuild antFileName

defaultTasks = ['greet']

task takeCare << {
println('Switch off security cam')
}

----------- Ant 目标的伪装---------
<target name="greet">
        <echo>Be nice, say hello!</echo>
         <antcall target="tackle"/>
</target>

<target name="tackle">
        <echo>Brought him down!</echo>
</target>

我要实现的是在调用 Ant 目标解决方案之前对gradle进行预检查。所以我的输出看起来像-

很好,打个招呼!
关闭安全凸轮。
把他打倒!

我该如何实现?

最佳答案

你有尝试过吗?

tackle.dependsOn takeCare

更新

如果您使用dependsOn并运行
gradle tackle 

你会得到
:takeCare
Switch off security cam
:tackle
[ant:echo] Brought him down!

但是,如果您使用run greet,则将不会执行takeCare,因为您直接进行了ant调用。因此,打招呼运行 Ant 的目标,而不是gradle任务。

您可以尝试在gradle中更改铲球目标。
ant.project.getTargets().find{it.value.name == "tackle"}.value

参见Java文档:Target

关于ant - 在执行过程中对ant目标执行Gradle doFirst,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29168166/

相关文章:

java - 创建一个 Java 报告项目——想要使用 JUnit 和 Ant,但不知道如何使用

java - Ant 过滤 - 如果未设置属性则失败

安卓工作室BaseGameUtils

java - 在 Replacetoken ant 任务中使用 build.properties 的值

java - 创建 Java 服务或守护程序脚本的最佳实践

Java ant jar 任务和类路径问题

intellij-idea - 在 Intellij IDEA 2016.1.1 的控制台中显示 Gradle 输出

android - 所有 com.android.support 库必须使用完全相同的版本规范 28.0.0 vs 26.1.0

android - 为什么gradle任务以错误的顺序运行?

spring - 更改分支后无法解决Flyway依赖性