zoukankan      html  css  js  c++  java
  • Ant—使用Ant构建一个简单的Java工程(两)

            博客《Ant—使用Ant构建一个简单的Java项目(一)》演示了使用Ant工具构建简单的Java项目,接着这个样例来进一步学习Ant:

            上面样例须要运行多条ant命令才干运行Test类中的main函数,能不能简化须要运行命令呢?答案是肯定的,能够将build.xml文件里的脚本改成以下的脚本:

    <?

    xml version="1.0" encoding="UTF-8"?> <project name="test" default="run-Test" basedir="."> <property name="src" value="src"/> <property name="lib" value="build/lib"/> <property name="dest" value="build/classes"/> <property name="np_jar" value="build/lib/test.jar"/> <target name="create-path"> <mkdir dir="${dest}"/> <mkdir dir="${lib}"/> </target> <target name="create-class" depends="create-path"> <javac srcdir="${src}" destdir="${dest}"/> </target> <target name="create-jar" depends="create-class"> <jar destfile="${np_jar}" basedir="${dest}"> <manifest> <attribute name="Main-Class" value="Test"/> </manifest> </jar> </target> <target name="run-Test" depends="create-jar"> <java classname="Test" classpath="${np_jar}"/> </target> <target name="clean"> <delete file="${np_jar}"/> <delete dir="${dest}"/> <delete dir="${lib}"/> </target> </project>

            这时仅仅需运行ant命令就能够操作完毕须要依次运行“ant create-path”、“ant create-class”、“ant create-jar” 和“ant run-Test”命令才干完毕的操作,那么它是如何做到的呢?

            a、因为project标签default属性定义的值为run-Test,所以当直接运行ant命令时ant会首先运行name为run-Test的target;

            b、因为name为run-Test的target中的depends属性指向name为create-jar的target,所以会先运行name为create-jar的target;

            c、因为name为create-jar的target中的depends属性指向name为create-class的target。所以会先运行name为create-class的target;

            d、因为name为create-class的target中的depends属性指向name为create-path的target,所以会先运行name为create-path的target。

            e、因为name为create-path的target没有depends属性。所以ant命令终于先运行该target。

            由此可见。此时单独运行ant命令事实上就是依次运行了“ant create-path”、“ant create-class”、“ant create-jar” 和“ant run-Test”命令。

            DOS窗体单独运行ant命令的结果例如以下图:


    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    验证码识别思路
    chrome插件 图片搜索(20130602更新版本v2.0)
    CoffeeScript实现BF解释器
    浏览器几种高度宽度
    javascript Event事件
    浮躁的心
    前端页面跨域访问
    firefox浏览器兼容event事件方法
    转:Java Annotation详解
    javascript void(0)问题【转】
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4714772.html
Copyright © 2011-2022 走看看