Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting 使用本机Ant任务执行简单计算_Scripting_Ant - Fatal编程技术网

Scripting 使用本机Ant任务执行简单计算

Scripting 使用本机Ant任务执行简单计算,scripting,ant,Scripting,Ant,仅使用本机ANT任务,如何创建自定义ANT任务以执行以下操作: 计算自当地时间2000年1月1日起的天数,并将其存储在属性中 计算自当地时间午夜起的秒数除以2,并将其存储在属性中 上述属性值随后将附加到其他属性并写入文件。ANT不是通用编程语言,因此您需要编写自定义任务或使用类似 下面的示例演示了使用库的groovy任务如何设置您指定的属性 <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpa

仅使用本机ANT任务,如何创建自定义ANT任务以执行以下操作:

  • 计算自当地时间2000年1月1日起的天数,并将其存储在属性中
  • 计算自当地时间午夜起的秒数除以2,并将其存储在属性中

上述属性值随后将附加到其他属性并写入文件。

ANT不是通用编程语言,因此您需要编写自定义任务或使用类似

下面的示例演示了使用库的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>

导入org.joda.time*
def now=new DateTime()
def midnight=new DateMidnight()
def year2000=新日期时间(2000,1,1,0,0,0)
属性[“year2000.days”]=days.daysBetween(year2000,now).days
属性[“midnight.seconds”]=秒。秒之间(现在是午夜)。秒
属性[“midnight.seconds.halved”]=秒。秒之间(现在是午夜)。除以(2)。秒
我不能高度推荐Joda Time,Java中的标准日期和时间操作太差劲了

附加说明 上面的groovy任务需要在类路径上使用以下JAR:

  • groovy-all-1.7.4.jar
  • joda-time-1.6.1.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>