ant的使用

如果运行ant命令时没有指定任何参数,ant会在当前目录下搜索build.xml文件。

使用ant的关键是编写生成文件,生成文件定义了该项目的各项生成任务 每个target表示一个生成任务,并定义生成任务之间的依赖关系。

一个典型项目层次结构

<project>:该文件夹存放了整个项目的全部资源

             |----- src:存放源文件、各种配置文件的文件夹

             |----- classes:存放编译后的class文件的文件夹

             |----- lib:存放第三方JAR包的文件夹

             |----- dist: 存放项目打包、项目发布文件的文件夹

             | ----- build.xml ant 生成文件


<?xml version="1.0" encoding="GBK"?>
<!-- 定义生成文件的project根元素,默认的target为空 -->
<project name="antQs" basedir="." default="">
    <!-- 定义三个简单属性 -->
    <property name="src" value="src"/>
    <property name="classes" value="classes"/>
    <property name="dest" value="dest"/>
    <!-- 定义一组文件和目录集 -->
    <path id="classpath">
        <pathelement path="${classes}"/>
    </path>
    <!-- 定义help target,用于输出该生成文件的帮助信息 -->
    <target name="help" description="打印帮助信息">
        <echo>help - 打印帮助信息</echo>
        <echo>compile - 编译Java源文件</echo>
        <echo>run - 运行程序</echo>
        <echo>build - 打包JAR包</echo>
        <echo>clean - 清除所有编译生成的文件</echo>
    </target>
    <!-- 定义compile target,用于编译Java源文件 -->
    <target name="compile" description="编译Java源文件">
        <!-- 先删除classes属性所代表的文件夹 -->
        <delete dir="${classes}"/>
        <!-- 创建classes属性所代表的文件夹 -->
        <mkdir dir="${classes}"/>
        <!-- 编译Java文件,编译后的class文件放到classes属性所代表的文件夹内 -->
        <javac destdir="${classes}" debug="true" includeantruntime="yes"
            deprecation="false" optimize="false" failοnerrοr="true">
            <!-- 指定需要编译的Java文件所在的位置 -->
            <src path="${src}"/>
            <!-- 指定编译Java文件所需要第三方类库所在的位置 -->
            <classpath refid="classpath"/>
        </javac>
    </target>
    <!-- 定义run target,用于运行Java源文件,
        运行该target之前会先运行compile target -->
    <target name="run" description="运行程序" depends="compile">
        <!-- 运行lee.HelloTest类,其中fork指定启动另一个JVM来执行java命令 -->
        <java classname="lee.HelloTest" fork="yes" failοnerrοr="true">
            <classpath refid="classpath"/>
            <!-- 运行Java程序时传入2个参数 -->
            <arg line="测试参数1 测试参数2"/>
        </java>
    </target>
    <!-- 定义build target,用于打包JAR文件,
        运行该target之前会先运行compile target -->
    <target name="build" description="打包JAR文件" depends="compile">
        <!-- 先删除dest属性所代表的文件夹 -->
        <delete dir="${dest}"/>
        <!-- 创建dest属性所代表的文件夹 -->
        <mkdir dir="${dest}"/>
        <!-- 指定将classes属性所代表的文件夹下的所有
            *.classes文件都打包到app.jar文件中 -->
        <jar destfile="${dest}/app.jar" basedir="${classes}"
            includes="**/*.class">
            <!-- 为JAR包的清单文件添加属性 -->
            <manifest>
                <attribute name="Main-Class" value="lee.HelloTest"/>
            </manifest>
        </jar>
    </target>
    <!-- 定义clean target,用于删除所有编译生成的文件 -->
    <target name="clean" description="清除所有编译生成的文件">
        <!-- 删除两个目录,目录下的文件也一并删除 -->
        <delete dir="${classes}"/>
        <delete dir="${dest}"/>
    </target>
</project>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值