我有以下ant片段
<macrodef name="webapp.start">
<attribute name="name" />
<sequential>
<!--deploy-->
<antcall target="webapp.@{name}" />
<!--start server-->
<antcall target="tomcat-server-start" />
<!--go to URL-->
<exec executable="firefox" os="Linux" >
<arg line="-new-tab http://localhost:${tomcat.port}/@{name}" />
</exec>
</sequential>
</macrodef>
启动服务器但不打开浏览器。如果我将exec任务放在一个单独的目标中并运行它,它可以正常工作。我猜测启动服务器是一个没有结束的进程,下一个没有开始。怎么办我克服了这个问题?有没有办法让exec作为一个单独的过程启动。
答案 0 :(得分:1)
我猜测启动服务器是一个没有结束的进程,下一个没有开始
我会花一分钟确保这种情况。使用pgrep
或ps
来确定您的流程最新动态。
如果你确认服务器永远不会完成,我会在后台启动命令“tomcat-server-start”(通过使用&amp;后缀shell命令),除非如果firefox在tomcat之前启动它是一个大问题服务器。或者,在顺序块中使用parallel
块,如下所示:
<macrodef name="webapp.start">
<attribute name="name" />
<sequential>
<!--deploy-->
<antcall target="webapp.@{name}" />
<parallel>
<!--start server-->
<antcall target="tomcat-server-start" />
<!--go to URL-->
<exec executable="firefox" os="Linux" >
<arg line="-new-tab http://localhost:${tomcat.port}/@{name}" />
</exec>
</parallel>
</sequential>
</macrodef>