【问题标题】:How to automate deployment of war in Tomcat through Ant如何通过Ant在Tomcat中自动部署war
【发布时间】:2013-10-09 06:45:23
【问题描述】:

我想使用 Ant 自动构建、部署、启动和停止应用程序服务器。 我可以通过 Ant 构建应用程序并将 war 文件复制到 Tomcat webapps 目录中。

在 Internet 上,我找到了 this article,其中包含更多用于启动和停止 Tomcat 的代码。由于没有这些我可以成功部署,我想知道它们为什么会在那里。

我的 build.xml 的代码如下。

 <?xml version="1.0"?>
    <project name="Test" default="build-war">
        <property file="build.properties"></property>
        <target name="build-war" depends="clean">
                <war destfile="Test.war" webxml="${web.dir}/WEB-INF/web.xml" >
                    <fileset dir="${web.dir}">
                        <include name="**/*.*"/>
                    </fileset>
                <classes dir="${build.dir}/classes"></classes>
                </war>
                <copy todir="${deploy.path}" preservelastmodified="true">
                        <fileset

 dir=".">
                        <include name="*.war"/>
                    </fileset>
            </copy>
        </target>
    <target name="clean" description="Clean Test war directories">
        <delete>
            <fileset dir="${deploy.path}">
                <include name="Test.war"/>
            </fileset>
        </delete>
    </target>
</project>

【问题讨论】:

  • 代码看起来正确。你有什么问题?请在问题中包含您拥有的所有相关信息;我们看不到你的桌面、读懂你的想法或你的硬盘。
  • 这句话再次没有包含太多有用的信息。
  • 上述文章包含一些 ant 任务(启动、停止等),但我可以在不使用这些任务的情况下部署文件,那么它的用途是什么以及我们使用这些任务的原因
  • 我已经编辑了你的问题。这是你想知道的吗?

标签: ant


【解决方案1】:

没有可靠的方法将应用程序(重新)部署到 Web 服务器。应用程序部署失败的原因有很多(线程泄漏、关闭挂钩、访问父类加载器),但最终,没有可靠的方法来判断(复杂)应用程序是否可以成功部署。

这意味着大多数开发人员已经学会使用这个循环:

  1. 部署。 Tomcat 应该会自动注意到新文件并重新启动。
  2. 如果出现异常,请尝试重新加载 (ReloadTask)。这告诉 Tomcat “不管你相信什么,应用程序已经改变了!重新启动它!”
  3. 如果应用仍然失败,请停止并重新启动 Tomcat。
  4. 如果失败,请停止 Tomcat,删除所有文件,重新部署,部署后,再次启动 Tomcat。
  5. 如果失败,请删除 Tomcat 和所有文件,重新安装,...

是的,我曾经有一个脚本可以完成上述所有步骤。 :-)

最后,我放弃了部署。我目前的解决方案是编写一个 Java 应用程序,它创建一个嵌入式 Tomcat 或 Jetty 服务器,对其进行配置并启动应用程序。我只有一个类路径。不需要文件复制、部署或任何此类废话。这样,我只有一个进程,容器中只有一个 Web 应用程序,并且我将所有日志都放在一个地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多