我正在使用分布式源代码处理 Java 项目,必须使用自定义 Ant 脚本构建源代码才能正常工作。问题是,当我运行脚本时,我得到了
BUILD FAILED
C:\[path]\autobuild.xml:47: Only 1 operation can be specified
第 47-59 行内容如下:
<math result="months" datatype="int">
<op op="-">
<op op="+">
<num value="${month}"/>
<op op="*">
<num value="${year}"/>
<num value="12"/>
</op >
</op>
<num value="24097"/>
</op>
</math>
我尝试用谷歌搜索错误短语,唯一的结果是 Ant source of MathTask.java它表明如果操作为空,这就是应该发生的情况。我尝试按照以下行更改代码:
<op type="-">
或
<op op="subtract">
但是这些产生了同样的错误。我改为:
<subtract>
现在没有错误,但结果始终为零。 我还尝试将数学节减少为只有一个操作:
<math result="months" datatype="int">
<op op="subtract">
<num value="27940"/>
<num value="24123"/>
</op>
</math>
但问题依然存在。
我完全不知所措。有谁知道这里发生了什么?我使用的是最新版本的 Ant... ${month} 和 ${year} 设置正确(我也用硬编码数字进行了测试,但它仍然不起作用)。
谢谢!
最佳答案
这段代码我遇到了同样的问题。有趣的是,大多数时候它确实有效。该错误大约每 5 次我运行构建脚本时发生一次。
<math datatype="int" result="rndNum">
<op op="+">
<num value="42000" />
<op op="*">
<num value="1000"/>
<op op="random"/>
</op>
</op>
</math>
我从数学任务中删除了 datatype 属性并将其放在第一个操作中。
<math result="rndNum">
<op datatype="int" op="+">
<num value="42000" />
<op op="*">
<num value="1000"/>
<op op="random"/>
</op>
</op>
</math>
到目前为止它有效。让我们看看多长时间 :) 如果它不起作用,我会删除我的答案。
关于xml - Apache Ant 不会做数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059028/