通过 Apache Ant 来运行 Tomcat
时间:2022-07-22
本文章向大家介绍通过 Apache Ant 来运行 Tomcat,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Tomcat安装目录下的lib文件夹里的catalina-ant.jar 提供了下述的任务:
- InstallTask:安装一个 web 应用程序。 类名字为: org.apache.catalina.ant.InstallTask
注意,我用tomcat 9试的时候,InstallTask已经被替换成DeployTask:
- ReloadTask:重新安装一个 web 应用程序。类名字为: org.apache.catalina.ant.ReloadTask
- ListTask:列出所有的 web 应用程序。类名字为: Class Name: org.apache.catalina.ant.ListTask
- StartTask:启动一个 web 应用程序。类名字为: org.apache.catalina.ant.StartTask
- StopTask:停止一个 web 应用程序。类名字为: org.apache.catalina.ant.StopTask
- ReloadTask:重新加载一个无需停止的 web 应用程序。类名字为:org.apache.catalina.ant.ReloadTask
build.properties的源代码:
# Ant properties for building the spring app
appserver.home=C:\MyApp\apache-tomcat-9.0.29
appserver.lib=${appserver.home}/lib
deploy.path=${appserver.home}/webapps
tomcat.manager.url=http://localhost:9032/manager
tomcat.manager.username=jerry
tomcat.manager.password=jerry@sap
build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project name="jerryjsp" basedir="." default="build">
<property file="build.properties"/>
<property name="src.dir" value="src"/>
<property name="web.dir" value="WebContent"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="jerryjsp"/>
<path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="C:/MyApp/apache-tomcat-9.0.29/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>
<target name="build" description="Compile source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.8" target="1.8">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
</target>
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
<fileset dir=".">
<include name="*.war"/>
</fileset>
</delete>
</target>
<target name = "generate-javadoc">
<javadoc packagenames="action.*" sourcepath="${src.dir}"
destdir = "doc" version = "true" windowtitle = "Jerry Application">
<doctitle><![CDATA[= Jerrt Application =]]></doctitle>
<bottom>
<![CDATA[Copyright © 2020. JerryAll Rights Reserved.]]>
</bottom>
<group title = "action" packages = "action.*"/>
</javadoc>
<echo message = "java doc has been generated!" />
</target>
<target name="build-war" depends="build">
<war destfile="jerryjsp.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</war>
</target>
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
<taskdef name="install" classname="org.apache.catalina.ant.DeployTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<target name="deploywar" depends="build-war" description="Deploy application as a WAR file">
<copy todir="${deploy.path}" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</copy>
</target>
</project>
执行命令行ant deploywar, 即可将JSP项目webcontent文件夹下的资源打成war包,然后复制到tomcat服务器的webapps文件夹内。
target deploywar依赖于build-war:
build-war依赖于build:
- 3.python文件操作
- TensorFlow修炼之道(2)——变量(Variable)
- 4.python迭代器生成器装饰器
- 洛谷P2044 [NOI2012]随机数生成器
- 5.python函数
- TensorFlow 修炼之道(1)——张量(Tensor)
- 6.python内置函数
- 附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的 ”
- 7.python常用模块
- 8.python面向对象编程
- 莫比乌斯反演0
- 9.python异常处理
- Numpy 修炼之道 (9)—— 广播机制
- python爬虫人门(10)Scrapy框架之Downloader Middlewares
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ELK7.x日志系统搭建 2. Nginx、Cluster等日志收集
- Java8 Stream
- 性能测试必备知识(4)- 使用 stress 和 sysstat 分析平均负载过高的场景
- 高并发利器-guava分流与缓存
- 树莓派3b+组装+烧录retropie系统
- 使用Azure DevOps Pipeline实现.Net Core程序的CI
- 带你遨游USB世界
- C# 泛型中的数据类型判定与转换
- 评测Loki日志工具
- .Net微服务实战之负载均衡(上)
- ES 7.8 速成笔记(上)
- 利用Xtrabackup进行mysql增量备份和全量备份
- ES 7.8 速成笔记(中)
- 什么?字符串为空?
- PowerBI DAX 计算组 基础篇