Apache Ant学习总结(二):使用Ant自动编译JavaWeb项目并打成war包发布到Tomcat中...

本文介绍了一种使用Ant脚本实现JavaWeb项目自动化编译、打包及部署的方法,通过简单的配置即可快速完成项目的war包制作,并自动发布到Tomcat服务器上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:如题所示,有时我们可能经常需要把JavaWeb项目进行编译,然后打包成war包并发布到Tomacat中进行测试。如果每次都人工进行操作的话,无疑是很麻烦的。这时我们可以通过编写一个自动化的Ant脚本,每次需要发布项目时只需要点击一下就可以完成了,非常方便

测试项目的项目结构如下:

wKioL1djQ0fzUik8AABOAu2sOQU464.png

Ant脚本build_war.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<? xml  version = "1.0"  encoding = "UTF-8" ?>
< project  name = "antwar"  default = "publish"  basedir = "." >
     <!-- 打包生成的war名字 -->
     < property  name = "war.name"  value = "Internationalisation"  />
 
     <!-- java源文件路径 -->
     < property  name = "src.dir"  value = "${basedir}/src"  />
 
     <!-- webapp路径 -->
     < property  name = "webapp.dir"  value = "${basedir}/WebContent"  />
 
     <!-- jar包路径 -->
     < property  name = "lib.dir"  value = "${webapp.dir}/WEB-INF/lib"  />
 
     <!-- 编译源文件路径 -->
     < property  name = "build.bin"  value = "${basedir}/AntBuild/bin"  />
 
     <!-- 准备webapp文件路径 -->
     < property  name = "buildwar.dest"  value = "${basedir}/AntBuild/warsrc"  />
 
     <!-- 打包war文件路径 -->
     < property  name = "war.dest"  value = "${basedir}/AntBuild/war"  />
 
     <!-- tomcat路径 -->
     < property  name = "tomcat.home"  value = "D:\\apache-tomcat-7.0.68"  />
 
     <!-- classpath -->
     < path  id = "classpath" >
         < fileset  dir = "${lib.dir}" >
             < include  name = "**/*.jar"  />
         </ fileset >
         < fileset  dir = "${tomcat.home}/lib" >
             < include  name = "**/*.jar"  />
         </ fileset >
     </ path >
 
     <!-- 初始化 -->
     < target  name = "init" >
         < mkdir  dir = "${build.bin}"  />
         < mkdir  dir = "${buildwar.dest}"  />
         < mkdir  dir = "${war.dest}"  />
 
         <!-- 复制静态文件 -->
         < copy  todir = "${buildwar.dest}"  overwrite = "true" >
             < fileset  dir = "${webapp.dir}" >
                 < exclude  name = "/WEB-INF/classes/**"  />
             </ fileset >
         </ copy >
     </ target >
 
     <!-- 编译源文件 -->
     < target  name = "compile"  depends = "init" >
         < echo  message = "Build: "  />
         < javac  srcdir = "${src.dir}"  destdir = "${build.bin}"  encoding = "utf-8"  includeantruntime = "" >
             < classpath  refid = "classpath"  />
         </ javac >
 
         <!-- 复制编译后的文件 -->
         < copy  todir = "${buildwar.dest}/WEB-INF/classes"  overwrite = "true" >
             < fileset  dir = "${build.bin}" >
                 < include  name = "**/*.class"  />
             </ fileset >
         </ copy >
     </ target >
 
     <!-- 复制项目中的其他的一些资源文件 -->
     < target  name = "copyResource"  depends = "compile" >
         < echo  message = "Copy resources: "  />
         < copy  todir = "${buildwar.dest}/WEB-INF/classes"  overwrite = "true" >
             < fileset  dir = "${basedir}/resources" >
                 < include  name = "**/*.*"  />
             </ fileset >
         </ copy >
     </ target >
 
     <!-- 打war包 -->
     < target  name = "build.war"  depends = "copyResource" >
         < echo  message = "Build war: "  />
         < war  warfile = "${war.dest}/${war.name}.war"  webxml = "${buildwar.dest}/WEB-INF/web.xml" >
             < fileset  dir = "${buildwar.dest}"  />
         </ war >
     </ target >
 
     <!-- 发布到tomcat -->
     < target  name = "publish"  depends = "build.war" >
         <!-- 删除tomcat已发布的项目文件 -->
         < delete  dir = "${tomcat.home}/webapps/${war.name}"  />
         < delete  file = "${tomcat.home}/webapps/${war.name}.war"  />
 
         <!-- 复制war文件到${tomcat.home}/webapps -->
         < copy  todir = "${tomcat.home}/webapps"  overwrite = "true" >
             < fileset  dir = "${war.dest}" >
                 < filename  name = "${war.name}.war"  />
             </ fileset >
         </ copy >
 
         <!-- 清除临时文件 -->
         < delete  dir = "${build.bin}"  />
         < delete  dir = "${buildwar.dest}"  />
         < delete  dir = "${war.dest}"  />
 
     </ target >
 
</ project >

本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1790138,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值