ant打JAR、WAR包

1. ant安装

上官网下载ANT:http://ant.apache.org/bindownload.cgi

解压出来,添加系统变量ANT_HOME,并把ANT路径加入系统变量Path中

在命令行中,来到当前项目的路径(打包文件build.xml在该目录下)

在命令行中输入ant,回车就可以看到结果


2. ant打JAR包


<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" basedir="." default="main">
    <property name="src.dir" value="src" /> <!-- 源JAVA文件的路径 -->
    <property name="build.dir" value="build-lib" /> <!-- JAR包存放的路径 -->
    <property name="classes.dir" value="${build.dir}/classes" /> <!-- CLASS文件存放的路径 -->
    <property name="main-class" value="com.Main" /> <!-- 可以运行的JAVA类 -->
    
    <!-- 清理生成CLASS文件和JAR包的文件夹 -->
    <target name="clean">
        <delete dir="${build.dir}" />
    </target>

    <!-- 程序用到的第三方JAR包 -->
    <path id="lib_classpath">
        <fileset dir="lib/">
            <include name="*.jar" />
        </fileset>
    </path>
    
    <!-- 将JAVA文件编译成CLASS文件,并存放到指定目录build-lib/classes中-->
    <target name="compile">
        <mkdir dir="${classes.dir}" />
        <javac srcdir="${src.dir}" destdir="${classes.dir}">
            <classpath refid="lib_classpath" />
        </javac>
    </target>

    <!-- 将目录build-lib/classes中的CLASS文件打成JAR包 -->
    <target name="jar" depends="compile">
        <mkdir dir="${build.dir}" />
        <mkdir dir="${build.dir}/lib" />
        <copy file="lib/jdom.jar" todir="${build.dir}/lib"/>  <!-- 将第三方JAR包拷相应的目录 -->
        <jar destfile="${build.dir}/common-0.0.1.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}" />
                <attribute name="Class-Path" value=". lib/jdom.jar"/><!-- 设置第三方JAR包的访问路径 -->
            </manifest>
            <!--<zipfileset src="E:\eastcom_workspace\Jar\lib\jdom.jar"/> 把第三方JAR包打进JAR包里面,运行JAR包时会用到 -->
        </jar>
    </target>

    <!-- 运行JAR包-->
    <target name="run" depends="jar">
        <java jar="${build.dir}/common-0.0.1.jar" fork="true">
        </java>
    </target>
    
    <!-- 把生成的CLASS文件删除 -->
    <target name="clean-build">
        <delete dir="${classes.dir}" />
    </target>
    
    <target name="main" depends="clean, run, clean-build" />

</project>

3. ant打WAR包


<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" basedir="." default="build.war">
    <property name="classes.dir" value="./WebRoot/WEB-INF/classes" />
    <property name="lib.dir" value="./WebRoot/WEB-INF/lib" />
    <property name="build.web.dir" value="build-web" />

    <!-- 将要打包的JSP文件、JAR包、CLASS文件拷贝到打包文件-->
    <target name="copy.war" description="">
        <delete dir="${build.lib.dir}" />
        <delete dir="${build.web.dir}" />
        <mkdir dir="${build.web.dir}" />
        <mkdir dir="${build.web.dir}/WEB-INF" />
        <mkdir dir="${build.web.dir}/WEB-INF/lib" />
        <mkdir dir="${build.web.dir}/WEB-INF/classes" />
        <copy todir="${build.web.dir}">
            <fileset dir="./WebRoot/" includes="*.jsp" />
        </copy>
        <copy todir="${build.web.dir}/WEB-INF">
            <fileset dir="./WebRoot/WEB-INF/" includes="*.*" />
        </copy>
        <copy todir="${build.web.dir}/WEB-INF/lib">
            <fileset dir="${lib.dir}" includes="*.jar" />
        </copy>
        <copy todir="${build.web.dir}/WEB-INF/classes">
            <fileset dir="${classes.dir}" includes="**/*.*" />
        </copy>
    </target>

    <!-- 将JSP文件、JAR包、CLASS文件打包成WAR包-->
    <target name="build.war" depends="copy.war" description="builds compact HelloWorld.war">
            <delete>
                <fileset dir="./">
                    <include name="HelloWorld.war" />
                </fileset>
            </delete>
            <war encoding="utf8" destfile="${build.web.dir}/HelloWorld.war" webxml="${build.web.dir}/WEB-INF/web.xml" basedir="${build.web.dir}" />
              <delete dir="${build.web.dir}/WEB-INF"/>
            <delete file="${build.web.dir}/index.jsp" />
        </target>
</project>

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页