0

我在尝试从 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>

问题是,虽然我在调用 cmd.exe 时使用 spawn 设置为 true 和 /C 参数,但我的构建被挂起并且在我停止 Tomcat 之前永远不会完成。

你知道原因吗?我在 stackoverflow 中看到了很多帖子,其中包含理论上可以正常工作的类似代码。其他帖子使用 bash 而不是 cmd,但据我所知,bash 仅在 Unix 世界中。

有什么帮助吗?

非常感谢,

化学。

4

2 回答 2

0

这是我们一直在使用的我的 ant 脚本的一部分……永远。它每天都在开发中使用,我们也在生产中使用它来启动和停止 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>

所有属性的定义留给读者作为练习。

于 2013-01-28T22:39:26.883 回答
0

不太确定Windows,但基于这个讨论(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>
于 2013-01-28T19:14:02.387 回答