Gradle 在执行期间在 ant 目标上执行 doFirst
Gradle doFirst on ant target during execution
我正在尝试覆盖一个预先构建的古老的 ant 脚本。由于某些原因,我无法直接编辑 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 target tackle 之前对 gradle 进行预检查。所以我的输出看起来像 -
友好点,打个招呼!
关闭安全摄像头。
把他打倒了!
我该如何实现?
你试过了吗?
tackle.dependsOn takeCare
更新
如果您使用 dependsOn 和 运行
gradle tackle
你会得到
:takeCare
Switch off security cam
:tackle
[ant:echo] Brought him down!
但是如果你使用运行greet,takeCare不会被执行,因为你直接调用了ant。所以迎接 运行 的蚂蚁目标而不是 gradle 任务。
您可以尝试在gradle中更改铲球目标。
ant.project.getTargets().find{it.value.name == "tackle"}.value
请参阅 java 文档:Target
我正在尝试覆盖一个预先构建的古老的 ant 脚本。由于某些原因,我无法直接编辑 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 target tackle 之前对 gradle 进行预检查。所以我的输出看起来像 -
友好点,打个招呼! 关闭安全摄像头。 把他打倒了!
我该如何实现?
你试过了吗?
tackle.dependsOn takeCare
更新
如果您使用 dependsOn 和 运行
gradle tackle
你会得到
:takeCare
Switch off security cam
:tackle
[ant:echo] Brought him down!
但是如果你使用运行greet,takeCare不会被执行,因为你直接调用了ant。所以迎接 运行 的蚂蚁目标而不是 gradle 任务。
您可以尝试在gradle中更改铲球目标。
ant.project.getTargets().find{it.value.name == "tackle"}.value
请参阅 java 文档:Target