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.js
- vim 使用说明
- CentOS 6.5 生产环境编译安装LNMP
- Mysql5.5命令行修改密码
- 深入理解计算机系统第二版习题解答CSAPP 2.16
- 基于avalon1.4.x ----分页组件编写
- Spring学习之杂七杂八
- 【面经】腾讯和YY实习生面试总结
- QA: 自闭合标签要不要手动闭合?
- 高通ASOC中的machine驱动
- 豆瓣爬虫小记(lowB版)
- python爬取中国天气网站数据并对其进行数据可视化
- C博客作业05--指针
- 使用 Mutex 实现进程间同步
- AI学习---回归和聚类算法
- jQuery获取地址栏中的链接参数
- NodeJs第3方包说明
- oracle 日常
- Qt大小端
- 【Anaconda】windows安装报错:UnicodeDecodeError解决方法
热门文章
- Windows7-32位系统下R语言链接mySQL数据库步骤
- css3-9 css中的浮动怎么使用
- RocketMQ 安装详细说明
- 【34.88%】【codeforces 569C】Primes or Palindromes?
- [Typescript] Generics using TypeScript
- &;lt;LeetCode OJ&;gt; 62. / 63. Unique Paths(I / II)
- 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(8)枚举、补码
- ### Hibernate中的事务与并发 ###
- Tools:downloading and Building EDK II工具篇:安装/使用EDKII源代码获取/编译工具[2.3]
- js进阶 10-10 可见伪类选择器和内容伪类选择器的作用