Java 蚂蚁+;保持控制值

Java 蚂蚁+;保持控制值,java,file,ant,controls,Java,File,Ant,Controls,我需要保留一个控制值(可能在文件中),以便决定是否执行任务 我来自这里: 我想做的是检查控制值是否等于一个周期(mmYY)。如果相等,则不会执行任何操作,但如果不相等,则应更新控制值 例如: <task dosomethingifcontrolvaluediffers> control value is 0000 (calculated) property is: 0110 Then, control value should now be 0110. </task>

我需要保留一个控制值(可能在文件中),以便决定是否执行任务

我来自这里:

我想做的是检查控制值是否等于一个周期(mmYY)。如果相等,则不会执行任何操作,但如果不相等,则应更新控制值

例如:

<task dosomethingifcontrolvaluediffers>
control value is 0000
(calculated) property is: 0110
Then, control value should now be 0110.

</task>
aProperty=some value

控制值为0000
(计算)财产为:0110
然后,控制值现在应该是0110。
我在考虑将该值保存在一个单独的文件中,如果需要重写,则截断该文件并进行更新,但是

1) 我找不到这样做的方法

2) 我不知道怎么做

3) 脚本编写?将是我最喜欢的选择,但不知道如何在js

有什么想法吗


提前感谢。

应该在Ant之外完成。用您所知道的任何语言(bash、Python、JavaScript等)编写一个脚本来进行计算、检查,并在需要时使用该值作为参数调用Ant


Ant并不打算成为一种脚本语言。当人们试图这样做时,他们会陷入麻烦。

我还没有尝试过,但是,您可以这样做:

像这样使用条件任务

<condition property="exectask">
   <equals arg1="${prop1}" arg2="${prop2}" trim="true"/>
</condition>

然后根据属性值调用目标

<target name="dosomethingifcontrolvaluediffers" unless="${exectask}">
</target>


希望能有所帮助。

正如达菲莫所说,Ant不是一种脚本语言。 尽管您可以在Ant内部使用类似javascript的脚本语言,但请参阅以了解详细信息。 您可以这样定义自己的任务:

<scriptdef name="nameOfTheTask" language="javascript">
    <![CDATA[
        (your script goes here)
    ]]>
</scriptdef>
<nameOfTheTask/>
这会将值写入文件yourFile。例如,输出为:

<task dosomethingifcontrolvaluediffers>
control value is 0000
(calculated) property is: 0110
Then, control value should now be 0110.

</task>
aProperty=some value
您可以使用以下命令在脚本中再次读取该值:



我明白你的意思,但事情是这样的。prop1可以计算,但我的问题是“我如何获得prop2”。另外,如何在目标内部更新它。谢谢。对不起,我不明白:也许prop2是控制值?Sh*t。我希望“ant不是脚本语言”不会出现。问题是,ant是我在这个项目中唯一的“脚本”可能性。你使用的是什么操作系统?您不能在Windows上使用批处理或命令文件,或在*nix中使用cshell?你总是有选择的余地。