gpt4 book ai didi

java - Apache Ant如何部署.war文件到Tomcat

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:28 25 4
gpt4 key购买 nike

我正在使用 Apache Ant 1.8 将 Web 应用程序部署到本地 Tomcat 服务器,当我在命令行运行“ant deploy”时,build.xml 文件(如下)产生了预期的效果。

我的问题是,我注意到 .war 文件被放置在我期望的位置(deploy.dir 在我的主目录的 build.properties 文件中定义),但它也出乎意料地解压缩了 .war 并提取了上下文本身进入同一个目录。是在下面的build.xml文件哪里配置的?

  <target name='init'>
<property file='${user.home}/build.properties'/>
<property name='app.name' value='${ant.project.name}'/>
<property name='src.dir' location='src'/>
<property name='lib.dir' location='lib'/>
<property name='build.dir' location='build'/>
<property name='classes.dir' location='${build.dir}/classes'/>
<property name='dist.dir' location='${build.dir}/dist'/>
</target>

<target name='initdirs' depends='init'>
<mkdir dir='${classes.dir}'/>
<mkdir dir='${dist.dir}'/>
</target>

<target name='compile' depends='initdirs'>
<javac srcdir='${src.dir}/java' destdir='${classes.dir}'>
<!--
<classpath>
<fileset dir='${lib.dir}/development' includes='javaee.jar'/>
<fileset dir='${lib.dir}/production' includes='jr.jar'/>
</classpath>
-->
</javac>
</target>

<target name='war' depends='compile'>
<war destFile='${dist.dir}/${app.name}.war' webxml='${src.dir}/web/WEB-INF/web.xml'>
<classes dir='${classes.dir}'/>
<!--
<zipfileset dir='${lib.dir}/production' includes='jr.jar' prefix='WEB-INF/lib' />
-->
<fileset dir='${src.dir}/web' excludes='WEB-INF/web.xml' />
</war>
</target>

<target name='build' depends='war' description='compile and create the war' />

<target name='clean' depends='init' description='Use for a clean build'>
<delete dir='${build.dir}' />
</target>

<target name='ffbuild' depends='clean, build' description='clean and create the war'/>

<target name='deploy' depends='initdirs' description='copy the war file to the app server'>
<delete verbose='true' dir='${deploy.dir}/${app.name}'/>
<fail unless='deploy.dir' message='build.properties must exist in your home directory and define deploy.dir' />
<copy todir='${deploy.dir}' file='${dist.dir}/${app.name}.war'/>
</target>

最佳答案

Tomcat 有一个自动部署文件夹,您放置的任何 war 文件都将自动解压缩和部署。您的 ant 文件只是通过调用 tomcat-manager web 应用程序(预先打包到 tomcat 中)中的特殊 URL 将 war 文件复制到此目录中。

从这一点开始,一切都由 tomcat 核心自动处理,就像您手动将 war 文件复制到 webapps 目录一样。

您可以让 ant 为 tomcat 执行一些特定的 ant 任务。特别是如果 Tomcat 服务器不在本地机器上。 See this link for details .

关于java - Apache Ant如何部署.war文件到Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6131462/

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