gpt4 book ai didi

java - 如何找到正在执行的 ant 目标的名称?

转载 作者:行者123 更新时间:2023-11-30 05:59:22 24 4
gpt4 key购买 nike

假设如果 Ant 目标的名称包含某些单词,我想设置一些变量。这可能吗?能否获取当前执行的目标名称?

编辑:我尝试使用 -d 运行 ant ,我注意到一个环境变量 TEMP_A其中似乎包含当前目标的名称。我想知道,这可以跨不同的 ant 版本工作吗?

最佳答案

您可以使用内置(自 JDK 6 起)Javascript 引擎创建宏定义,无需额外的库。
类似的东西:

<project>
<!--
Loglevel defined in org.apache.tools.ant.Project
MSG_ERR = 0;
MSG_WARN = 1;
MSG_INFO = 2;
MSG_VERBOSE = 3;
MSG_DEBUG = 4;
-->

<!-- macrodef creating a property with name of executing target
optional logging to stdout via adjustable loglevel -->
<macrodef name="showtargetname">
<attribute name="property"/>
<attribute name="loglevel" default="3"/>
<sequential>
<script language="javascript">
t = self.getOwningTarget();
self.getProject().setNewProperty("@{property}", t);
self.log("TargetName => " + t, @{loglevel});
</script>
</sequential>
</macrodef>

<target name="foobar">
<showtargetname property="foo"/>
<echo>$${foo} => ${foo}</echo>
</target>

</project>

之后,您可以将目标名称作为属性用于进一步处理,例如使用condition task (=> contains) 检查属性是否包含某些字符串。
或者将“targetname contains certain strings”的逻辑也添加到宏定义中。

要探索自己可用的内容,请使用:

<script language="javascript">
for(x in self) {self.log(x);}
</script>

关于java - 如何找到正在执行的 ant 目标的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3165252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com