java利用Ant脚本生成war包全过程
使用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脚本代码
<?xmlversion="1.0"encoding="UTF-8"?> <!--定义一个工程,默认任务为warFile。--> <projectname="awp"default="warFile"basedir="."> <!--定义属性,打成war包的名称。--> <propertyname="warFileName"value="awp.war"></property> <!--定义路径,编译java文件时用到的jar包。--> <pathid="project.lib"> <filesetdir="${basedir}/lib"> <includename="**/*.jar"/> </fileset> </path> <!--定义任务,清空任务:清空原有的class文件,创建新的build路径。--> <targetname="clean"> <deletedir="${basedir}/src/main/webapp/WEB-INF/classes"/> <mkdirdir="${basedir}/src/main/webapp/WEB-INF/classes"/> </target> <!--定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。--> <targetname="build"depends="clean"> <javacsrcdir="${basedir}/src/main/java"destdir="${basedir}/src/main/webapp/WEB-INF/classes"includeantruntime="false"source="1.6"target="1.6"> <classpathrefid="project.lib"> </classpath> </javac> <!--复制src/main/java下非java文件到/src/main/webapp/WEB-INF/classes--> <copytodir="${basedir}/src/main/webapp/WEB-INF/classes"> <filesetdir="${basedir}/src/main/java"> <includename="**/**.*"/> <excludename="**/*.java"/> </fileset> </copy> </target> <!--定义默认任务,将class文件集合成jar包。--> <targetname="warFile"depends="build"> <!--将lib文件夹下的jar打包到WEB-INF/lib下--> <copytodir="${basedir}/src/main/webapp/WEB-INF/lib"> <filesetdir="${basedir}/lib"> </fileset> </copy> <!--建立新war包。--> <wardestfile="${basedir}/${warFileName}"webxml="${basedir}/src/main/webapp/WEB-INF/web.xml"> <!--将非jar和非class文件拷贝到war包的对应路径下。--> <filesetdir="${basedir}/src/main/webapp"> <includename="**/**.*"/> <excludename="**/*.jar"/> <excludename="**/*.class"/> </fileset> <!--将jar和class文件拷贝到war包的对应路径下。--> <libdir="${basedir}/src/main/webapp/WEB-INF/lib"/> <classesdir="${basedir}/src/main/webapp/WEB-INF/classes"/> </war> </target> </project>
以上就是本文的全部内容,希望对大家的学习有所帮助。