gpt4 book ai didi

运行 Jar 后,Java Ant 不会完成任务

转载 作者:行者123 更新时间:2023-11-30 08:28:43 26 4
gpt4 key购买 nike

我得到了一些 junit 测试(在 Tester App 中),我想在服务上运行(Service.jar 并行运行)。一旦 ant 运行 Service.jar,它就不会按预期返回执行 junit 测试,而只是坐在那里运行 Service 应用程序。难道我做错了什么?我的 build.xml 如下所示。

<target name="compile" depends="clean">
<javac srcdir="${srcdir}" destdir="${testdir}"
verbose="${full-compile}">
<classpath refid="classpath.test"/>
</javac>
</target>
<target name="test" depends="compile,run">
<junit fork="no" haltonfailure="yes">
<classpath refid="classpath.test" />
<formatter type="brief" usefile="false" />
<test name="xyz.Tester.Test1" outfile="result" >
<formatter type="plain"/>
<formatter type="xml"/>
</test>
</junit>
</target>
<target name="run">
<java jar="Service.jar" fork="yes">
</java>
</target>

此外,我想知道是否有一种方法可以在 Ant 中运行 Service.jar (fork="no") 如果可能的话,因为 ant 不允许我(无法在非 fork 中执行 jar模式。请设置 fork='true'。)

如有任何帮助,我们将不胜感激。谢谢

最佳答案

默认情况下,ant 任务是按顺序执行的。当您需要并行运行某些东西时,您需要显式使用任务 parallel - 查看其文档中的示例 - 例如:

...
<parallel>
<java jar="Service.jar" fork="yes"/>
<sequential>
<sleep seconds="30"/>
<junit fork="true" forkmode="once" ... >
<java jar="ServiceStopper.jar" fork="yes"/>
</sequential>
</parallel>
...

或者,您可以在 java 上使用 spawn 属性任务。它会导致您的服务在单独的进程中生成,并继续处理下一个 ant 命令。

关于非 fork jar 执行 - 如果您指定 classpathclassname 属性,则可以避免 fork 。

关于运行 Jar 后,Java Ant 不会完成任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20059286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com