我在Windows 2008 R2中尝试从ANT启动Tomcat 7.0.x服务器时遇到困难。
这是我正在使用的代码:
<exec executable="cmd.exe" spawn="true">
<env key="CATALINA_HOME" value="${tomcat.home}" />
<arg line="/C '${tomcat.home}/bin/startup.bat'"/>
</exec>
问题是虽然我使用spawn设置为true,并且在调用cmd.exe时使用/ C参数,但是我的构建被挂起并且永远不会完成,直到我停止Tomcat。
你知道原因吗?我在stackoverflow中看到过很多帖子,其代码类似,理论上可以正常工作。其他帖子使用bash而不是cmd,但据我所知bash只在Unix世界中使用。任何帮助?
非常感谢,
CHEMI。
答案 0 :(得分:0)
对窗户不太确定,但基于此讨论(http://mail-archives.apache.org/mod_mbox/ant-user/200108.mbox/%3C2D90C2075E27D4118960000629A832E503751900@scooby.corp.bspark.com%3E),我试着尝试:
<exec dir="${tomcat.home}/bin" executable="start">
<arg line="startup.bat" />
<env key="CATALINA_HOME" value="${tomcat.home}" />
</exec>
答案 1 :(得分:0)
这是我用过的蚂蚁脚本的一部分......永远。它每天都在开发中使用,我们也在生产中使用它来启动和停止Tomcat(所有这些都在* NIX上,但是......我们有一些开发人员只是因为某种原因必须在Microsoft Windows上运行,这似乎不是为他们提出任何问题。)
我知道悬挂没有问题。
<exec osfamily="unix" executable="${app.tomcat-home}/bin/catalina.sh">
<env key="JAVA_HOME" value="${app.java-home}" />
<env key="JAVA_OPTS" value="${effective.JAVA_OPTS}" />
<env key="CATALINA_BASE" value="${app.home.dir}" />
<env key="CATALINA_OPTS" value="${effective.CATALINA_OPTS}" />
<arg value="start" />
<arg value="${security-option}" />
</exec>
<!-- Separate script for win32 -->
<exec osfamily="winnt" executable="${app.tomcat-home}/bin/catalina.bat">
<env key="JAVA_HOME" value="${app.java-home}" />
<env key="JAVA_OPTS" value="${effective.JAVA_OPTS}" />
<env key="CATALINA_HOME" value="${app.tomcat-home}" />
<env key="CATALINA_BASE" value="${app.home.dir}" />
<env key="CATALINA_OPTS" value="${effective.CATALINA_OPTS}" />
<arg value="start" />
<arg value="${security-option}" />
</exec>
所有属性的定义都留给读者练习。