我有一个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条件,即如果有错误回显错误消息,否则给出结果消息。我怎样才能实现
答案 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>