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

所属分类: 软件编程 / java 阅读数: 38
收藏 0 赞 0 分享

使用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脚本代码

<?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>

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

更多精彩内容其他人还在看

Springmvc restful配置遇到的小坑

本文是小编给大家带了的Springmvc restful配置遇到的小小坑,小编给大家带来了问题原因及解决办法,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
收藏 0 赞 0 分享

Java中的匿名内部类小结

java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。这篇文章主要介绍了Java中的匿名内部类的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java的云打印Lodop

这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java线程池框架核心代码解析

这篇文章主要针对Java线程池框架核心代码进行详细解析,分析Java线程池框架的实现ThreadPoolExecutor,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java 交换两个变量的数值实现方法

下面小编就为大家带来一篇Java 交换两个变量的数值实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

全面了解JAVA_BaseDAO数据处理类

下面小编就为大家带来一篇全面了解JAVA_BaseDAO数据处理类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java、python、JavaScript以及jquery循环语句的区别

本篇文章主要介绍java、python、JavaScript以及jquery的循环语句的区别,这里整理了它们循环语句语法跟示例,以便大家阅读,更好的区分它们的不同
收藏 0 赞 0 分享

基于JDBC封装的BaseDao(实例代码)

下面小编就为大家带来一篇基于JDBC封装的BaseDao(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

简单通用JDBC辅助类封装(实例)

下面小编就为大家带来一篇简单通用JDBC辅助类封装(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

浅谈java线程中生产者与消费者的问题

下面小编就为大家带来一篇浅谈java线程中生产者与消费者的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多