仅使用本机ANT任务,如何创建自定义ANT任务以执行以下操作:
然后,上述属性值将附加到其他属性值并写入文件。
答案 0 :(得分:2)
ANT不是通用编程语言,因此您需要编写自定义任务或者使用类似groovy plugin
的内容以下示例演示了使用Joda Time库的groovy任务如何设置您指定的属性。
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
<groovy>
import org.joda.time.*
def now = new DateTime()
def midnight = new DateMidnight()
def year2000 = new DateTime(2000,1,1,0,0,0,0)
properties["year2000.days"] = Days.daysBetween(year2000, now).days
properties["midnight.seconds"] = Seconds.secondsBetween(midnight, now).seconds
properties["midnight.seconds.halved"] = Seconds.secondsBetween(midnight, now).dividedBy(2).seconds
</groovy>
我不能高度推荐Joda Time,Java中的标准日期和时间操作很糟糕!
上面的常规任务将需要您的类路径上的以下jar:
我建议使用ivy插件通过添加“resolve”目标来管理这些内容,该目标会下载jar并自动设置类路径:
<target name="resolve">
<ivy:resolve/>
<ivy:cachepath pathid="build.path"/>
</target>
以下是列出要下载的依赖项的 ivy.xml :
<ivy-module version="2.0">
<info organisation="org.myspotontheweb" module="demo"/>
<dependencies>
<dependency org="org.codehaus.groovy" name="groovy-all" rev="1.7.4" conf="default"/>
<dependency org="joda-time" name="joda-time" rev="1.6.1" conf="default"/>
</dependencies>
</ivy-module>