【问题标题】:Gradle doFirst on ant target during execution执行期间在蚂蚁目标上 Gradle doFirst
【发布时间】:2015-03-21 18:10:12
【问题描述】:

我正在尝试覆盖一个预先构建的古老的蚂蚁脚本。由于某些原因,我无法直接编辑 ant 文件。

-----------gradle任务的伪--------

ant.importBuild antFileName

defaultTasks = ['greet']

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

-----------蚂蚁目标的伪装---------

<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 是直接从 greet 调用的。

标签: ant gradle


【解决方案1】:

你试过了吗?

tackle.dependsOn takeCare

更新

如果你使用 dependsOn 并运行

gradle tackle 

你会得到

:takeCare
Switch off security cam
:tackle
[ant:echo] Brought him down!

但是如果你使用run greet,takeCare不会被执行,因为你是直接调用ant。所以 greet 运行 ant 目标而不是 gradle 任务。

您可以尝试在gradle中更改解决目标。

ant.project.getTargets().find{it.value.name == "tackle"}.value

参见 java 文档:Target

【讨论】:

  • 是的,似乎不影响ant执行
  • 我猜来自 Target API 的 addTask 将有助于解决这个问题。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多