Java 蚂蚁+;保持控制值
我需要保留一个控制值(可能在文件中),以便决定是否执行任务 我来自这里: 我想做的是检查控制值是否等于一个周期(mmYY)。如果相等,则不会执行任何操作,但如果不相等,则应更新控制值 例如: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>
<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?你总是有选择的余地。