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命令的结果例如以下图:
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Ant—使用Ant构建一个简单的Java工程(两)的更多相关文章
- 利用 Docker 构建一个简单的 java 开发编译环境
目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...
- Android高效的应用程序开发工具集1---ant构建一个简单的Android工程
在java编译那些事通过提到ant编译Java工程,如今扩大到用它来构建Android目,事实上道理是相通的.变化的仅仅是使用的形式.ant构建相比IDE的优点是多个子项目使用自己定义jar包时,an ...
- 构建一个简单的Angular工程
1.创建一个空的工程,之后用webstorm打开,添加一个bower.json文件: { "name": "AngularTpl", "depende ...
- 利用spring boot构建一个简单的web工程
1.选择Spring InitiaLizr, jdk选择好路径 2.设置项目信息 3.这一步是设置选择使用哪些组件,这里我们只需要选择web 4.设置工程名和路径
- 如何使用IDEA创建一个简单的java工程?
文章目录 1.创建新工程 1.1 新建项目 1.2 在src目录下创建package 1.3 在包下创建类 2.编写代码.运行项目 2.1 编写代码 2.2 运行结果 3.开心的从eclipse转移到 ...
- IntelliJ IDEA创建一个简单的Java Project(二)
1. 选择要创建的项目类型,同时配置本地的JDK 2. 是否使用模板创建项目 3. 选择项目在本地的存储位置 4. 点击Finish,完成一个简单的Java工程的创建.
- 【Android Developers Training】 3. 构建一个简单UI
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- gRPC初探——概念介绍以及如何构建一个简单的gRPC服务
目录 引言 1. gRPC简介 2. 使用Protocol Buffers进行服务定义 2.1 定义消息 2.2 定义服务接口 3.构建简单的gRPC服务 3.1 编写proto文件,定义消息和接口 ...
随机推荐
- [TypeStyle] Use fallback values in TypeStyle for better browser support
You can increase the browser support of your CSS using fallback values and vendor prefixes. This les ...
- ALERT日志中常见监听相关报错之二:ORA-3136错误的排查
最近在多个大型系统中遇到此问题,一般来说假设client未反映异常的话能够忽略的. 假设是client登陆时遇到ORA-12170: TNS:Connect timeout occurred,能够參考 ...
- object.create(null) 和 {}创建对象的区别
原文 简书原文:https://www.jianshu.com/p/43ce4d7d6151 创建对象的方法 如果要创建一个空的对象,可以使用如下的三种方法 var obj1 = {}; var ob ...
- Android学习笔记:Home Screen Widgets(2):关于Widget
通过widget定义,我们在widget列表中看到了我们的TestWidget.当我们拖拽widget到主页时,假设在appwidet-provider中定义了android:configure的ja ...
- js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量)
js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量) 一.总结 1.html中属性规范是 ...
- [SCSS] Use Standard Built-in SCSS Functions for Common Operations
We can use javascript for color and opacity variations, math, list and map logic or to see if someth ...
- Android Notification如何显示表情?
遇到这种分析用什么实现的,肯定要祭出大杀器Android Device Monitor(AS在Tools->Android)打开之后,选中连接的设备,然后点击小手机图标,即可导出UI层次图.咱们 ...
- phpStudy的localhost不能访问怎么解决(相关性)
phpStudy的localhost不能访问怎么解决(相关性) 一.总结 1.注释掉httpd.conf文件中的#ServerName localhost:80 这句话. 2.既然是localho ...
- QT学习记录之环境搭建
作者:朱金灿 来源:http://blog.csdn.net/clever101 1. 安装qt-win-opensource-4.8.5-vs2008.exe(对应的IDE是VS2008),安装路径 ...
- 稀疏编码(sparse code)与字典学习(dictionary learning)
Dictionary Learning Tools for Matlab. 1. 简介 字典 D∈RN×K(其中 K>N),共有 k 个原子,x∈RN×1 在字典 D 下的表示为 w,则获取较为 ...