java 用ant打包成jar文件
一、下载ant包,解压放放到你的项目中
二、在ant文件夹下创建一个build.xml文件,内容如下
<?xml version="1.0" encoding="GB2312" ?> <project name="funServlet" basedir="." default="buildjar"> <!-- 工程目录结构 project |-ant |-build.xml |-WebRoot |-WEB-INF |-lib |-classes |out --> <property name="lib.dir" value="../WebRoot/WEB-INF/lib"/> <property name="src.dir" value="../src"/> <property name="classes.dir" value="../WebRoot/WEB-INF/classes"/> <property name="output.dir" value="../out"/> <property name="jarname" value="funServlet.jar"/> <property name="mainclass" value="com.sun.servlet.funServlet"/><!--包名加class名称--> <!-- 第三方jar包的路径 --> <path id="lib-classpath"> <fileset dir="${lib.dir}"> <include name="servlet-api.jar"/> </fileset> </path> <!-- 1. 初始化工作,如创建目录等 --> <target name="init"> <!--mkdir dir="${classes.dir}"/--> <mkdir dir="${output.dir}"/> </target> <!-- 2. 编译 --> <target name="compile" depends="init"> <javac srcdir="${src.dir}" destdir="${classes.dir}"> <compilerarg line="-encoding UTF-8"/> <classpath refid="lib-classpath"/> </javac> </target> <!-- 3. 打包jar文件 --> <target name="buildjar" depends="compile"> <copy todir="${output.dir}/lib"> <fileset dir="${lib.dir}"/> </copy> <!--Create a property containing all .jar files, prefix lib/, and seperated with a space--> <pathconvert property="mf.classpath" pathsep=" "> <mapper> <chainedmapper> <!-- jar包文件只留文件名,去掉目录信息 --> <flattenmapper/> <!-- add lib/ prefix --> <globmapper from="*" to="lib/*"/> </chainedmapper> </mapper> <path refid="lib-classpath"/> </pathconvert> <!-- jar文件的输出路径 --> <jar destfile="${output.dir}/${jarname}" basedir="${classes.dir}"> <manifest> <attribute name="Main-class" value="${mainclass}"/> <attribute name="Class-Path" value="${mf.classpath}"/> </manifest> </jar> </target> </project>
basedir="." 表示目录为build.xml的根目录
<property name="lib.dir" value="../WebRoot/WEB-INF/lib"/> 要引用的第三方jar包在,父目录的WebRoot/WEB-INF/lib中。
最输出的jar文件在与ant文件夹同级的out文件中包括引用的第三方jar和新生成的jar。
多看一行书,就少写一行代码,记录点滴,用心生活。