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命令的结果例如以下图:


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

  • 相关阅读:
    react实现登陆页面
    “css中设置边框不显示,border:none; 和border:0; 都没用”的解决方案
    JQuery AJAX的post()方法和get()方法的区别
    JQuery事件之文档/窗口事件
    JQuery事件之表单事件
    【K8S初识】-什么是Kubernetes
    Yaml语法理解
    Json语法理解
    Maven学习-Maven工程中默认的环境变量
    Java语言(7)-Java中的注解
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4714772.html
Copyright © 2011-2022 走看看