gpt4 book ai didi

ant - 如何从属性文件向属性添加任何数字

转载 作者:行者123 更新时间:2023-12-04 01:50:09 25 4
gpt4 key购买 nike

我有房产

基数=100

在属性文件中。

我想根据要添加的值创建值 102、103、105 等。

如何将数字添加到属性并获得附加值?

最佳答案

您不需要额外的 ant 任务或额外的脚本语言来进行数学运算,只需使用 java 附带的内置 javascript 脚本引擎(自 jdk 1.6,Sun 自己的基于 rhino 1.6R2 的实现)结合 ant api 并放入一个宏定义以供重用, IE :

<project>
<property name="foo" value="22"/>
<echo>$${foo} => ${foo}</echo>

<!-- create macrodef -->
<macrodef name="math">
<attribute name="operation"/>
<attribute name="operator1"/>
<attribute name="operator2"/>
<attribute name="result"/>
<sequential>
<script language="javascript">
tmp = 0;
switch ("@{operation}")
{
case "+" :
tmp = parseInt("@{operator1}") + parseInt("@{operator2}");
break;
case "-" :
tmp = parseInt("@{operator1}") - parseInt("@{operator2}");
break;
case "*" :
tmp = parseInt("@{operator1}") * parseInt("@{operator2}");
break;
case "/" :
tmp = parseInt("@{operator1}") / parseInt("@{operator2}");
break;
}
project.setProperty("@{result}", tmp);
</script>
</sequential>
</macrodef>

<!-- create new properties -->
<math operation="/" operator1="${foo}" operator2="11" result="foooo"/>
<math operation="+" operator1="${foo}" operator2="21" result="fooo"/>
<!-- overwrite existing property foo -->
<math operation="+" operator1="${foo}" operator2="1" result="foo"/>
<echo>
create => $${fooo} => ${fooo}
create => $${foooo} => ${foooo}
overwrite => $${foo} => ${foo}
</echo>
</project>

如果您需要覆盖现有的用户属性(= 通过 ant -f foobar.xml -Dmyuserproperty=foo ... 在命令行上定义的那些属性),您必须使用以下方法:
project.setUserProperty()

关于ant - 如何从属性文件向属性添加任何数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16359221/

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