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

前端技术 2023/09/02 Java

使用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>

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

本文地址:https://www.stayed.cn/item/5861

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。