如果JAVA Ant任务出错,则回显消息

时间:2014-03-03 16:26:49

标签: ant

我有一个JAVA Ant任务 -

<target name="javatask">
<java classname="arq.sparql" fork="true" outputproperty="javaresult" errorproperty="javaerror1">
       <arg value="--data=${tools.dir}/build-config/SPARQL/cpldm.ttl"/>
       <arg value="--query=${queryFile}"/>
       <jvmarg value="-Xmx1024M"/>
       <classpath>
          <path>
              <fileset dir="${jena.dir}/lib">
                <include name="*.jar"/>
              </fileset>
         </path>
       </classpath>
   </java>
       <echo message="Error at: ${javaerror1} in ${queryFile}"/>
       <echo message="Result for ${queryFile} is: ${javaresult}"/>
</target>

现在我希望只有在存在“javaerror”时才会回显错误消息,并且如果没有错误则回显Result消息。所以基本上是if-else条件,即如果有错误回显错误消息,否则给出结果消息。我怎样才能实现

2 个答案:

答案 0 :(得分:1)

<target name="javataskfailure" if="javaerror1" depends="javatask">
    <echo message="Error at: ${javaerror1} in ${queryFile}"/>
    <echo message="Result for ${queryFile} is: ${javaresult}"/>
</target>

只有存在“javaerror1”属性时才会执行该任务。

答案 1 :(得分:1)

最新版本的Ant包含一个新的If and Unless属性,几乎可以在任何任务中设置这些属性。我遇到了一些问题,你需要使用Ant 1.9.1或更高版本,但它确实会使if / else条件更容易处理。

例如,您可以将其放在<echo/>声明中:

<echo unless:blank="javaerror1">Error at: ${javaerror1} in ${queryFile}</echo>

您可以改为使用 set 属性:

<echo if:set"javaerror1">Error at: ${javaerror1} in ${queryFile}</echo>