首页 > 代码库 > Ant学习---第三节:使用Ant实现一个最小的项目编译

Ant学习---第三节:使用Ant实现一个最小的项目编译

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>

Ant学习---第三节:使用Ant实现一个最小的项目编译