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


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

转载于:https://www.cnblogs.com/gcczhongduan/p/4714772.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++之函数指针实现函数回调

1、问题 C++很多地方需要函数指针回调,但是我理解还是不够深刻,今天再写了测试例子,方便后面更深入理解和记忆。 2、代码实现 A.h 文件实现 // // A.h // TestC++ // // Created by 1111 on 17/8/17. // Copyright © 2017年 sangfor. All rights reserved. //#…

JMS的样例

1、JMS是一个由AS提供的Message服务。它能接受消息产生者(Message Provider)所发出的消息&#xff0c;并把消息转发给消息消费者(Message Consumer)。2、JMS提供2种类型的消息服务&#xff1a;(1)Queue&#xff0c;即点对点&#xff0c;每一个消息仅仅转发给一个消息消费者使用…

《面向对象的思考过程(原书第4版)》一1.11 组合

本节书摘来自华章出版社《面向对象的思考过程&#xff08;原书第4版&#xff09;》一书中的第1章&#xff0c;第1.11节&#xff0c;&#xff3b;美&#xff3d; 马特魏斯费尔德&#xff08;Matt Weisfeld&#xff09; 著黄博文 译更多章节内容可以访问云栖社区“华章计算机”…

Hadoop 新增删除节点

1 新增Data节点 1.1 修改/etc/hosts&#xff0c;增加datanode的ip 1.2 在新增加的节点启动服务 hadoop-daemon.sh start datanode yarn-daemon.sh start nodemanager 1.3 均衡block start-balancer.sh 1&#xff09;如果不balance&#xff0c;那么cluster会把新的数据都存放在…

Java Thread Status(转)

public static enum Thread.State extends Enum<Thread.State>线程状态。线程可以处于下列状态之一&#xff1a; 1.NEW 至今尚未启动的线程的状态。 2.RUNNABLE 可运行线程的线程状态。 处于可运行状态的某一线程正在 Java 虚拟机中运行&#xff0c;但它可能正在…

秀!微软《550页图解.Net+WPF完整版》.pdf 附下载!

赶紧看看微软公司基于最新的.netwpf编写文档。对于零基础可以作为.net的快速入门教材&#xff0c;对于高级程序员而言&#xff0c;这也是你的充电之路&#xff01;NO.1资料介绍该手册,全面的介绍.net的新特性&#xff0c;看完这个资料&#xff0c;你能够对.net/c#WPF的新功能&a…

Android之编译jni出错解决办法

1、问题 1&#xff09;、我编写的类一开始都能编译&#xff0c;后来编译不过 2&#xff09;、undefined reference to Qt::value 2、解决办法 1 )、我在写Android.mk的时候这样注释了下面的代码 LOCAL_SRC_FILES : \A.cpp \B.cpp \# C.cpp \D.cpp \这样导致找不到D…

《移动App测试的22条军规》—第1章1.2节移动App的生命周期

本节书摘来自异步社区《移动App测试的22条军规》一书中的第1章&#xff0c;第1.2节移动App的生命周期&#xff0c;作者黄勇&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 移动App的生命周期移动App测试的22条军规&#xff08;1&#xff09;对于还处于…

C语言之常见错误解决办法

1、问题 1)、忘记写const char* p string.c_str()char* p string.data(); 自己傻逼了&#xff0c;编译不过&#xff0c;应该这样写&#xff0c;不要忘记加上const const char* p string.c_str();const char* p string.data(); 2&#xff09;、const char*p 转 char* p co…

电子商务应用课程知识整理 第一章-电子商务概述与类型

一、电子商务定义 电子商务&#xff08;Electronic Commerce&#xff0c;简称EC&#xff09;&#xff0c;是指在全球各地广泛的商业贸易活动中&#xff0c;在因特网开放的网络环境下&#xff0c;基于客户端&#xff08;浏览器、移动端&#xff09;/服务器&#xff0c;买卖双方…

nodejs中文件,目录的操作(1)

首先&#xff0c;我们对fs文件系统分为两类操作&#xff0c;第一类是xxx方法&#xff0c;第二类是xxxSync方法。所有的fs操作几乎都是这两类&#xff0c;第一类是异步回调&#xff0c;第二类是同步等待。 A.对于文件的读写操作 a.完整性读写 1.fs.readFile(filename,[options],…

如何制作自己的静态库

如何制作自己的静态库 将一些不想暴露给使用方的实现代码打包成.a库&#xff08;比如&#xff1a;百度地图sdk,写sdk的时候&#xff0c;需要使用到&#xff09; 需要创建一个静态库的工程&#xff0c;来实现代码逻辑&#xff0c;并完成对代码的打包&#xff08;.a库&#xff09…

Android之jni编译出现error: jump to label ‘XXXX’ [-fpermissive]解决办法

1、问题 Android jni里面编写C代码的时候&#xff0c;我就写了个goto语句&#xff0c;特么也提示下面的错误 error: jump to label ‘XXXX’ [-fpermissive] 这不是日了狗吗&#xff1f;用个goto也出错。 2、原因 我在使用goto的后面语句,有一些初始化变量&#xff0c;如果跳…

《Java和Android开发学习指南(第2版)》—— 1.5 本章小结

本节书摘来异步社区《Java和Android开发学习指南&#xff08;第2版&#xff09;》一书中的第1章&#xff0c;第1.5节&#xff0c;作者&#xff1a;【加】Budi Kurniawan&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.5 本章小结 本章介绍了如何下载和安…

电子商务应用课程知识整理 第二章-电子商务相关知识与技术

一、万维网 万维网&#xff08;亦作“网络”、www、Web或World Wide Web&#xff09;&#xff0c;是一个资源空间。在这个空间中包含一些有用的事务&#xff0c;有一个”统一资源标识符“&#xff08;URL&#xff09;表示。这些资源通过超文本传输协议&#xff08;HTTP&#x…

Spark 性能调优-内存设置-GC设置

http://mt.sohu.com/20150604/n414449770.shtml http://my.oschina.net/mkh/blog/330386 http://itindex.net/detail/51632-spark-%E7%BB%8F%E9%AA%8C http://itindex.net/detail/51631-spark-%E7%BB%8F%E9%AA%8C转载于:https://www.cnblogs.com/liuchangchun/p/4718313.html

Avalonia跨平台入门第十三篇之Expander控件

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果;今天趁着空闲时间接着去摸索基于Expander控件实现的效果,最终实现的效果如下图:来看看具体的布局:Expander控件样…

Android之网络调试adb tcpip

1、问题 Android这边手机插上了第三方盾&#xff0c;需要网络调试2、解决办法 1、手机和PC在同一网段的情况下 把手机usb和连接线和电脑端连接起来&#xff0c;输入下面命令1&#xff09;、adb tcpip 55552) 、adb shell ifconfig 查看手机网络IP3&#xff09;、在电脑上ping…

《版式设计——日本平面设计师参考手册》—第1章应用对象样式

本节书摘来自异步社区《版式设计——日本平面设计师参考手册》一书中的第1章应用对象样式&#xff0c;作者Designing编辑部,更多章节内容可以访问云栖社区“异步社区”公众号查看。 应用对象样式版式设计——日本平面设计师参考手册对象样式可以帮助我们更有效率地进行工作。 h…

电子商务应用课程知识整理 第三章-网络营销

文章目录一、网络营销概述网络营销特点4Ps营销理论4Cs营销理论二、病毒营销特点传播方式&#xff08;病毒载体&#xff09;三、论坛营销优势技巧四、博客营销形式步骤五、微博营销六、微信营销优势七、软文营销软文营销的五种形式八、邮件营销效果评价一、网络营销概述 网络营…