我正在尝试从Ant构建文件运行JBoss TattleTale。通常我从命令行运行它,如下所示:
java -Xmx512m -jar /home/myuser/jars/tattletale.jar /home/myuser/projects/lib /home/myuser/tmp/tt其中/home/myuser/projects/src是我所有JAR所在的源目录,/home/myuser/tmp/tt是我放置所有TattleTale报告的输出目录。
在Ant构建文件中,我使用了以下内容:
<echo message="Running tattle-tale..."/>
<java fork="true" failonerror="true" jar="/home/myuser/jars/tattletale.jar">
<arg value="Xmx512m"/>
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>当我从命令行运行这个目标时:
run-tattletale:
[echo] Running tattle-tale...
BUILD SUCCESSFUL
Total time: 3 seconds当我转到/home/myuser/tmp/tt时,我看不到任何输出,但是Ant的输出显示SUCCESS,没有错误或警告。我的<arg>看起来是否正确,如果不正确,我应该如何更改它们?如果它们确实看起来是正确的,我可以做些什么来调试?提前感谢!
发布于 2012-10-15 03:13:15
两件事:
<java>的不同之处。它将使您能够调整您的<java>任务。java命令本身时,您可以使用<jvmarg>而不是tweek举个例子:
<echo message="Running tattle-tale..."/>
<java fork="true"
failonerror="true"
jar="/home/myuser/jars/tattletale.jar">
<jvmarg value="-Xmx512m"/> <!-- Note the dash! -->
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>如果您使用的是Unix/Linux,请尝试使用ant -d | tee ant.out运行。在Windows上,您必须执行ant -d > ant.out.txt,这将以ant.out.txt格式保存输出,但在ant运行时不会显示输出。
发布于 2012-10-15 00:01:13
第一个参数是一个JVM参数,而不是程序参数,所以<arg>是错误的语法。对于这种情况,使用java任务的maxmemory参数更容易。
因此,删除第一个<arg>并将maxmemory=512m放入<java>块中。
发布于 2016-12-23 04:18:19
如果您在目标目录中看不到输出,可能是由于1)给定的输入目录中没有存档,或者2) tattletale进程失败。在失败或异常的情况下,tattletale进程似乎返回退出代码0,并使ant相信进程执行成功。
对于调试,我建议您确保给定的目录是正确的,并且有java归档(jar)文件,并分析tattletale产生的标准输出/错误。
示例:
<echo message="Running tattle-tale..."/>
<java fork="true"
failonerror="false"
errorproperty="errorproperty"
outputproperty="outputproperty"
jar="/home/myuser/jars/tattletale.jar">
<jvmarg value="-Xmx512m"/> <!-- Note the dash! -->
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>
<echo message="stdout>> ${outputproperty}"/>
<echo message="stderr>> ${errorproperty}" /> 注意:- failonerror暂时为false,仅用于调试目的。
https://stackoverflow.com/questions/12883877
复制相似问题