1、编译 .java 文件,生成 .jar 包,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project  default="jar">
    <!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 -->
    <fileset id="src.path" dir="src">
        <!-- include 是用逗号分隔的,需要包含的文件模式列表 -->
        <include name="**/*.*"/>
        <!-- excludes 是用逗号分隔的需要派出的文件模式列表 -->
        <exclude name="**/Test*"/>
    </fileset>
    <target name="init">
        <delete dir="build"/>
        <!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 -->
        <mkdir dir="build"/>
        <mkdir dir="build/src"/>
        <mkdir dir="build/classes"/>
        <mkdir dir="build/dist"/>
    </target>
    <!-- depends表示依赖的目标 -->
    <target name="copySrc" depends="init">
        <!-- todir 表示目标目录 -->
        <copy todir="build/src">
            <!-- 通过 refid 可以引用外部标签 -->
            <fileset refid="src.path"></fileset>
        </copy>
    </target>
    
    <target name="compile" depends="copySrc">
        <!-- 编译 -->
        <javac destdir="build/classes" srcdir="src"/>
    </target>
    
    <target name="jar" depends="compile">
        <!-- 打包 -->
        <!-- destfile表示JAR文件名 basedir表示被归档的文件名 -->
        <jar destfile="build/classes/hello.jar" basedir="build/src"/>
    </target>
</project>

2、在生成的 .jar 文件中的 MANIFEST.MF 文件中添加属性,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project  default="jar">
    <!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 -->
    <fileset id="src.path" dir="src">
        <!-- include 是用逗号分隔的,需要包含的文件模式列表 -->
        <include name="**/*.*"/>
        <!-- excludes 是用逗号分隔的需要派出的文件模式列表 -->
        <exclude name="**/Test*"/>
    </fileset>
    <target name="init">
        <delete dir="build"/>
        <!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 -->
        <mkdir dir="build"/>
        <mkdir dir="build/src"/>
        <mkdir dir="build/classes"/>
        <mkdir dir="build/dist"/>
    </target>
    <!-- depends表示依赖的目标 -->
    <target name="copySrc" depends="init">
        <!-- todir 表示目标目录 -->
        <copy todir="build/src">
            <!-- 通过 refid 可以引用外部标签 -->
            <fileset refid="src.path"></fileset>
        </copy>
    </target>
    
    <target name="compile" depends="copySrc">
        <!-- 编译 -->
        <javac destdir="build/classes" srcdir="src"/>
    </target>
    
    <target name="jar" depends="compile">
        <!-- 打包 -->
        <!-- destfile表示JAR文件名 basedir表示被归档的文件名 -->
        <jar destfile="build/classes/hello.jar" basedir="build/src">
            <!-- manifest标签往META-INF/MANIFEST.MF文件中添加属性 -->
            <manifest>
                <!-- 如果 jar 可以运行,需要在META-INF/MANIFEST.MF文件中添加Mina-class -->
                <attribute name="Mina-class" value="com.learn.ant.HelloWorld"></attribute>
                <attribute name="BuildBy" value="hwl"></attribute>
            </manifest>
        </jar>
    </target>
</project>

3、执行 .jar 文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project  default="execute">
    <!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 -->
    <fileset id="src.path" dir="src">
        <!-- include 是用逗号分隔的,需要包含的文件模式列表 -->
        <include name="**/*.*"/>
        <!-- excludes 是用逗号分隔的需要派出的文件模式列表 -->
        <exclude name="**/Test*"/>
    </fileset>
    <target name="init">
        <delete dir="build"/>
        <!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 -->
        <mkdir dir="build"/>
        <mkdir dir="build/src"/>
        <mkdir dir="build/classes"/>
        <mkdir dir="build/dist"/>
    </target>
    <!-- depends表示依赖的目标 -->
    <target name="copySrc" depends="init">
        <!-- todir 表示目标目录 -->
        <copy todir="build/src">
            <!-- 通过 refid 可以引用外部标签 -->
            <fileset refid="src.path"></fileset>
        </copy>
    </target>
    
    <target name="compile" depends="copySrc">
        <!-- 编译 -->
        <javac destdir="build/classes" srcdir="src">
            <compilerarg line="-encoding UTF-8"/>
        </javac>
    </target>
    
    <target name="jar" depends="compile">
        <!-- 打包 -->
        <!-- destfile表示JAR文件名 basedir表示被归档的文件名 -->
        <jar destfile="build/dist/hello.jar" basedir="build/classes">
            <!-- manifest标签往META-INF/MANIFEST.MF文件中添加属性 -->
            <manifest>
                <!-- 如果 jar 可以运行,需要在META-INF/MANIFEST.MF文件中添加Mina-class -->
                <attribute name="Main-class" value="com.learn.ant.HelloWorld"></attribute>
                <attribute name="BuildBy" value="hwl"></attribute>
            </manifest>
        </jar>
    </target>
    
    <target name="execute" depends="jar">
        <!-- 编译 -->
        <echo>基于类路径的classname来完成执行</echo>
        <java classname="com.learn.ant.HelloWorld" classpath="build/classes">
            <!-- 参数 -->
            <arg value="张三"/>
            <arg value="李四"/>
            <arg value="王五"/>
        </java>
        
        <echo>基于jar文件完成执行</echo>
        <!-- fork="true" 表示基于jdk的环境类执行 -->
        <java jar="build/dist/hello.jar" fork="true">
            <!-- 参数 -->
            <arg value="张三"/>
            <arg value="李四"/>
            <arg value="王五"/>
        </java>
    </target>
</project>
posted on 2014-11-15 20:24  hwlsniper  阅读(252)  评论(0编辑  收藏  举报