ant+eclipse知识点详解及使用案例
ant的优点和地位就不再阐述,下面直接上知识点:
在java中使用xml文件开发,有以下基本语法
(1)project:每个ant程序有且只有一个此标签,而且是类似于html的总标签,有name,default,description,basedir四个属性,当然了我们也可以写到标签内,也可以单独的写成一个嵌套在project标签内的子标签,这四个属性中最为重要的就是default属性,必不可少;basedir属性一般都是“.”;
(2)target:一个项目可以定义多个target标签,一个标签可以依赖其他的target标签,使用depends属性就可以了,但是执行的顺序按照“只要某个target依赖于另一个target,后者就会被先执行”的标准,还有就是在标签示例中有一个default=”all”,这说明在默认情况下all这个target会被执行;不常用的属性还有if(仅当属性设置时执行目标)和unless(仅当属性没有设置时执行目标),description(目标的描述),name属性必不可少,因为这个名字会被其他的target作为depends的标记;
(3)property:一个项目可以有很多的property,可以在构建文件中使用ant内置的属性标记property。其以名值对的方式存在,对属性值的引用可以通过”${propertyName}”来实现。
(4)echo:此标记用于将消息写到System.out,有以下两种方式:
<echo message="Message you want"/>
或
<echo>Message you want</echo>```
;此标签有常用的三个属性,message,file(输出的文件),append(用于将输出追加到文件之后,而非覆盖文件)
(5)copy:此标记用于将一个或一组文件从一处拷贝到另一处。常用的属性有以下几个,file(要移动的源文件),tofile(目标文件),todir(目标文件夹),overwrite(指定是否覆盖目标文件,默认是不覆盖),includeEmptyDirs(指定是否拷贝空的文件夹,默认为拷贝),failonerror(指定目标文件或文件夹没有发现是否自动停止,默认是自动停止),verbose(指定是否记录所拷贝的文件,默认为不记录),下面是一些典型的应用实例:
拷贝一个目录到另一个目录下
(6)mkdir:此标记用于创建一个目录,如果其父目录不存在,也会被同时的创建;具体案例如:<mkdir dir="${dist.javadocs}"/>其中dir属性制定了所创建的目录名称。
(7)jar:此标记用于将.class文件打包,生成一个.jar文件有以下几个常用的属性,destfile(打包后的.jar文件名称),includes(包中要包含在内的文件),excludes(包中所要排除的文件),basedir(要打包的文件目录)。具体的使用案例有:
将"${build}/classes"下面的所有的文件打包到"${dist}/lib/app.jar"中
(8)<javac>:此标记用于变异一个或一组java文件,常用的属性如下,srcdir(被编译的源文件的目录),destdir(.class文件的输出目录),includes(),excludes(),debug(编译时是否包含调试信息),classpath(编译时使用到的类的路径),fileonerror(),verbose(提供详细的输出),optimize(编译时是否使用优化)。下面的是一个具体的使用案例:编译${src}目录及其子目录下的所有的.jave文件,.class 文件将放在${build}指定的目录下,classpath表示要用到的类文件或者目录,debug设置为on表示输出调试信息
`<javac srcdir="${src}" destdir="${build}" classpath="abc.jar" debug="on"/>`
(9)<java>:标记用来执行编译生成的.class文件,常用的属性有以下几个,classname(要执行的里的名称),jar(包含该类的jar文件名),classpath(执行时用到的类的路径),output(输出文件),append(追加或者覆盖默认文件),fork(在一个新的虚拟机中运行该类),fileonerror(),使用方法见下面:
在classname中指定要执行的类,在classpath中设置要使用的类的路径
(10)<delete>:此标记用来删除一个文件或者一组文件。当其属性名为includeEmptyDirs为true时,删除指定的目录,包含它自己。
ant的具体的使用案例,为了演示效果,我们在eclipse中新建一个项目,内写一个名为HelloWorld.java的类,代码如下:
package com.tiger;
public class HelloWorld {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("世界,你好!");
}
}
然后创建一个名为build.xml的文件,右键使用ant editer 打开,然后输入如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
2015年10月10日 下午1:23:10
project
description
Administrator
====================================================================== -->
<project default="build" basedir=".">
<property name="appname" value="HelloWorld"></property>
<property name="base" value="."></property>
<property name="src" value="src"></property>
<property name="build" value="classes"></property>
<property name="myclasspath" value="${build}"></property>
<description>
How to make description ?
</description>
<!-- =================================
target: default
================================= -->
<target name="build" >
<mkdir dir="${build}"/>
<javac classpath="${myclasspath}" srcdir="${base}" destdir="${build}">
<include name="**/*.java"/>
</javac>
</target>
<!-- - - - - - - - - - - - - - - - - -
target: depends
- - - - - - - - - - - - - - - - - -->
<target name="clean">
<delete includeemptydirs="true">
<fileset dir="${build}"></fileset>
</delete>
</target>
</project>
,然后运行就可以看到具体的的结果了。好了,差不多就是这些了。
ant+eclipse知识点详解及使用案例的更多相关文章
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- Activity知识点详解
Activity知识点详解 一.什么是Activity 官方解释: The Activity class is a crucial component of an Android app, and t ...
- Hive学习之三 《Hive的表的详解和应用案例详解》
一.Hive的表 Hive的表分为内部表.外部表和分区表. 1.内部表,为托管表. 2.外部表,external. 3.分区表. 详解: 内部表,删除表的时候,数据会跟着删除. 外部表,在删除表的时候 ...
- python爬虫知识点详解
python爬虫知识点总结(一)库的安装 python爬虫知识点总结(二)爬虫的基本原理 python爬虫知识点总结(三)urllib库详解 python爬虫知识点总结(四)Requests库的基本使 ...
- 移动端js触摸touch详解(附带案例源码)
移动端触摸滑动原理详解案例,实现过程通过添加DOM标签的触摸事件监听,并计算触摸距离,通过距离坐标计算触摸角度,最后通过触摸角度去判断往哪个方向触摸的. 触摸的事件列表 触摸的4个事件: touchs ...
- 「JVM」知识点详解一:JVM运行原理详解
前言 JVM 一直都是面试的必考点,大家都知道,但是要把它搞清楚又好像不是特别容易.JVM 的知识点太散,不系统,今天带大家详细的了解一下jvm的运行原理. 正文 1 什么是JVM? JVM是Java ...
- Oracle 冷备份详解【实战案例】
Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...
- OpenStack知识点详解
一:云计算 一.起源 1. 云计算这个概念首次在2006年8月的搜索引擎会议上提出,成为了继互联网.计算机后信息时代的又一种革新(互联网第三次革命). 2. 云计算的核心是将资源协调在一起,使 ...
- Java Ant build.xml详解
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为 ...
随机推荐
- Python中enumerate用法详解
enumerate()是python的内置函数.适用于python2.x和python3.xenumerate在字典上是枚举.列举的意思enumerate参数为可遍历/可迭代的对象(如列表.字符串)e ...
- map函数、filer函数、reduce函数的用法和区别
Map函数 map函数的用法如下: def add_one(x): return x+1 #使用普通函数 v1 = map(add_one,[1,2,3]) v1 = list(v1) print(v ...
- 转:禁止360随身wifi驱动自动安装
from:http://bbs.360safe.com/thread-2643500-1-1.html 有曾经数次卸载随身wifi后,插上又会自动安装随身wifi驱动的,也可以看看下面的解决办法. 卸 ...
- python笔记十四(高阶函数——map/reduce、filter、sorted)
一.map/reduce 1.map() map(f,iterable),将一个iterable对象一次作用于函数f,并返回一个迭代器. >>> def f(x): #定义一个函数 ...
- CentOS, Fedora, or Red Hat一行命令安装apache + mysql + php 及各种依赖库
sudo sh -c "yum install httpd httpd-devel mysql mysql-server mysql-devel php php-mysql php-comm ...
- Docker常见仓库WordPress
WordPress 基本信息 WordPress 是开源的 Blog 和内容管理系统框架,它基于 PhP 和 MySQL. 该仓库提供了 WordPress 4.0 版本的镜像. 使用方法 启动容器需 ...
- Docker的名字空间
名字空间是 Linux 内核一个强大的特性.每个容器都有自己单独的名字空间,运行在其中的应用都像是在独立的操作系统中运行一样.名字空间保证了容器之间彼此互不影响. pid 名字空间 不同用户的进程就是 ...
- Swift基础之实现选择图片时,出现类似于ActionSheet的样式
之前看到过有APP在选择图片时,调用手机相册时,将手机相册做成了左右滑动选择的效果,这次展示的就是这种样式,用OC语言已经有人实现过类似的代码,在这里写的仅仅是效果展示的代码调用,具体代码,可以自己研 ...
- Gradle 1.12用户指南翻译——第46章. Java 库发布插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- Bootstrap3 排版-标题
HTML 中的所有标题标签,<h1> 到 <h6> 均可使用.另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式. h1. Boots ...