如果JavaAnt任务出现错误,则回显消息
我有一个JavaAnt任务,它是-如果JavaAnt任务出现错误,则回显消息,ant,Ant,我有一个JavaAnt任务,它是- <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
<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”时回显错误消息,如果没有错误,则回显结果消息。所以基本上它是一种if-else条件,也就是说,如果有错误,回显错误消息,else-给出结果消息。我怎样才能做到这一点
<target name="javataskfailure" if="javaerror1" depends="javatask">
<echo message="Error at: ${javaerror1} in ${queryFile}"/>
<echo message="Result for ${queryFile} is: ${javaresult}"/>
</target>
只有当“javaerror1”属性存在时,任务才会执行。最新版本的Ant包含一个新属性,几乎可以在任何任务中设置。我在让它工作时遇到了一些问题,您确实需要Ant 1.9.1或更高版本,但它确实使if/else条件更容易处理 例如,您可以将其放在
语句中:
<echo unless:blank="javaerror1">Error at: ${javaerror1} in ${queryFile}</echo>
在${queryFile}中的${javaerror1}处出错
您可以改为使用set属性:
<echo if:set"javaerror1">Error at: ${javaerror1} in ${queryFile}</echo>
在${queryFile}中的${javaerror1}处出错
您是否运行了javatarkfailure目标?它将运行javatask,因为它依赖于它。好了,完成了,现在的问题是“javaerror1”将一直设置是否有错误,因此即使没有错误,错误消息也会被回显。有什么帮助吗?你是在问我为什么在没有错误的情况下输出标准错误?LOL回显标准错误,并找出在没有错误时写入的内容……不,你搞错了,如果没有错误,“javaerror1”的值设置为“”,但在本例中仍然设置为空值,因此“if=”javaerror1“'条件将始终通过。似乎叉导致返回空字符串。。。。至少在我的测试中是这样。谢谢David,问题是当Java ant任务运行时,“javaerror1”总是会被设置的,所以即使没有被args2捕获的错误,错误消息也会被回显。