我试图覆盖一个预先建立的古老的 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/