服务器之家

服务器之家 > 正文

java利用Ant脚本生成war包全过程

时间:2020-04-08 14:29     来源/作者:ngulc

使用ant脚本前的准备
1、下载一个ant安装包。如:apache-ant-1.8.4-bin.zip。解压到E盘。

2、配置环境变量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。

3、检查ant是否配置完成。运行->cmd输入:ant -version。查看是否打印ant的版本号。

打包的实质
生成jar包的实质

1、编译工程src文件夹下的java文件,生成相应的class文件。

2、将所有的class文件集合成jar包。

生成war包的实质

1、编译工程src文件夹下的java文件,生成相应的class文件。

2、将工程WebContent下的除了class文件和jar包以外的文件,全部拷贝到war包的对应目录下。

3、将编译生成的class文件,全部拷贝到war包WEB-INF/classes文件夹下。

4、将工程lib中的jar包,全部拷贝到war包的WEB-INF/lib下。最后压缩成war包。

一个生成war包的ant脚本代码

?
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
<?xml version="1.0" encoding="UTF-8"?>
 
<!-- 定义一个工程,默认任务为warFile。 -->
<project name="awp" default="warFile" basedir=".">
  
 <!-- 定义属性,打成war包的名称。 -->
 <property name="warFileName" value="awp.war"></property>
  
 <!-- 定义路径,编译java文件时用到的jar包。 -->
 <path id="project.lib">
  <fileset dir="${basedir}/lib">
   <include name="**/*.jar"/>
  </fileset>
 </path>
  
  <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
 <target name="clean">
  <delete dir="${basedir}/src/main/webapp/WEB-INF/classes" />
  <mkdir dir="${basedir}/src/main/webapp/WEB-INF/classes" />
 </target>
  
 <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
 <target name="build" depends="clean">
  <javac srcdir="${basedir}/src/main/java" destdir="${basedir}/src/main/webapp/WEB-INF/classes" includeantruntime="false" source="1.6" target="1.6">
   <classpath refid="project.lib">
   </classpath>
  </javac>
  
  <!--复制src/main/java下非java文件到/src/main/webapp/WEB-INF/classes-->
  
  <copy todir="${basedir}/src/main/webapp/WEB-INF/classes">
   <fileset dir="${basedir}/src/main/java">
    <include name="**/**.*" />
    <exclude name="**/*.java"/>    
   </fileset>
  </copy>
 </target>
  
 <!-- 定义默认任务,将class文件集合成jar包。 -->
 <target name="warFile" depends="build">
  <!--将lib文件夹下的jar打包到WEB-INF/lib下 -->
  
  <copy todir="${basedir}/src/main/webapp/WEB-INF/lib">
       <fileset dir="${basedir}/lib">
       
       </fileset>
  </copy>
  <!-- 建立新war包。 -->
  <war destfile="${basedir}/${warFileName}" webxml="${basedir}/src/main/webapp/WEB-INF/web.xml">
   <!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
    <fileset dir="${basedir}/src/main/webapp">
      <include name="**/**.*" />
      <exclude name="**/*.jar"/>
      <exclude name="**/*.class"/>
    </fileset>
   <!-- 将jar和class文件拷贝到war包的对应路径下。 -->
    <lib dir="${basedir}/src/main/webapp/WEB-INF/lib" />
    <classes dir="${basedir}/src/main/webapp/WEB-INF/classes" />
  </war>
 </target>
  
</project>

以上就是本文的全部内容,希望对大家的学习有所帮助。

标签:

相关文章

热门资讯

沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部