Ant真是太方便了,以前都没注意到它。功能很强大,能创建数据库,配置服务器,部署发布应用……只需要写好build.xml文件,剩下的就交给ant 来“安装”你的WEB应用了。
Appfuse的第一个ant命令是ant
new,其任务是建立一个新命名的project,少不了会复制很多文件。build.xml中也有很多copy操作,为了搞清楚ant
new到底干了些什么事,还是先把copy操作了解一下。看了会ant的DOCS,网上也找了些文章,发现copy这部分都是一带而过,讲得很浅,于是我
就只有自己实验下,发现还有点收获。 ant版本为1.6.5。
1. 拷贝单个文件到指定目录下。
例:
-
<copy todir=
"${basedir}/new"
file=
"${basedir}/old/old1.txt1"
>
将${basedir}/old /old.txt文件拷贝到${basedir}/new下
2. 拷贝一批文件到指定目录下
例:
-
<copy todir=
"${basedir}/new"
>
-
<fileset dir="${basedir}/old"
>
-
<include name="old1.txt"
/>
-
<include name="old2.txt"
/>
-
<exclude name="old8.txt"
/>
-
</fileset>
-
</copy>
这里fileset定义的是原文件的组成形式,<include/>子属性表示包括,<exclude/>子属性表示排除,很简单,通过他们组合实现多文件的筛选,当然我这个例子用得很傻。比如
-
<include name=
"appgen/**"
/>
-
<include name="ibatis/**"
/>
-
<exclude name="**/*.log"
/>
拷贝appget目录和ibatis目录下除了.log文件以外的其它所有文件和子目录。
可以把<fileset/>简写成
-
<fileset dir=
"${basedir}/old"
includes=
"old1.txt,old2.txt"
/>
,includes可以理解成include的复数形式,包含多个文件时用逗号隔开,excludes也一样。
3. 拷贝一个目录到指定目录下
例:
-
<copy todir=
"${basedir}/new"
>
-
<fileset dir="${basedir}/old"
>
-
<include name="appgen"
/>
-
<include name="appgen/"
/>
-
<include name="appgen/**"
/>
-
<include name="appgen/***"
/>
-
</fileset>
-
</copy>
同样使用<fileset/>属性,name指定目录名,不过这里要分两种情况,用<include/>子属性和不用<include/>子属性.
若使用<include/>, 又要分三种情况
若是“appgen”,则只会拷贝名为appgen的空目录过去,它里面的文件和子目录则不会拷贝。
若是“appgen/”,或“appgen/**”,则会把整个appgen目录拷贝过去,包括里面的文件和子目录。
若是“appgen/*”,则只会把该目录和该目录下第一级子目录的所有东西拷贝过去,而不会拷贝第二级和第二级以下的。注:“appgen/*”这儿是
一个*号,*号若大于两个,也跟一个*号是同样效果。比如“appgen/*”和“appgen/****”都只拷贝appgen目录下第一级子目录。
注:若appeng这个目录本身就是个空目录,无论怎么写,这个空目录都不会被拷贝。也就是说,copy操作不会产生创建空目录的作用,要想创建空目录,只有用mkdir。
若不使用任何<include>属性,如
-
<fileset dir=
"${basedir}/old"
>
-
</fileset>
则会拷贝${basedir}/old下的所有文件和子目录。
注:使用<exclude/>排除目录时,目录名必须写成 “appgen/”或“appgen/**”形式,否则不会生效。
以上是三种拷贝到目录的种类,注意如果计算机中没有 todir指定的路径,ant将会自动创建这个路径。
4. 拷贝单个的文件:
〈copy tofile="old.txt" file="new.txt" /〉就这么简单就行了。
当然也可以写成
-
<copy tofile=
"${basedir}/new/new.txt"
>
-
<fileset dir="${basedir}/old"
includes=
"old.txt"
/>
-
</copy>
这里includes就只能写一个文件,不能写上多个文件,因为不能将多个文件复制到一个文件中去,所以这样麻烦的写法是没有意义的。
复制肯定还要涉及到同名覆盖的问题,ant在copy类的API中说明:Files are only copied if the source
file is newer than the destination
file,这里的newer是指文件的修改时间,即使你在修改时文件内容没有任何变化,只是导致修改时间变了,ant同样会覆盖同名文件,也就是
说,ant不会检查文件内容。
[注]: 此文从别处摘抄,备用
对于是复制目录的情况,由于目录没有修改时间,ant还是通过检查目录内文件的修改时间来决定是否覆盖的,若目录内某文件修改时间有变化,则会覆盖这个文件,而不是整个目录。
如果要强行覆盖,<copy/>有个 overwrite属性,默认为false,改成true就行了。
【注】 此文从别处摘录,方便日后查看
分享到:
相关推荐
通过阅读`命令.txt`、`ant知识.txt`、`ant构建Java.txt`、`ant例子.txt`这些文件,你可以深入了解Ant的使用方法,包括命令行调用、具体的构建步骤、Java项目构建实例以及各种任务的实践应用。这些资料将帮助你掌握...
在`build.xml`或`build1.xml`这样的ANT脚本中,可能会包含使用XDoclet的任务定义,例如`<xdoclet>`任务,来执行这一步骤。 2. **部署EJB项目**: EJB(Enterprise JavaBeans)是Java EE平台的核心组件,用于构建可...
这个“ANT脚本学习与开发指导”文档,显然是为了帮助初学者掌握ANT的基本用法和高级技巧。下面,我们将深入探讨ANT的核心概念、用途、基本结构以及如何进行实际操作。 一、ANT简介 ANT是Apache软件基金会的一个项目...
在"ant脚本文档学习"的过程中,你可能会接触到Ant的命令行用法,如何配置IDE(如Eclipse或IntelliJ IDEA)来集成Ant,以及如何通过引入外部的构建文件来共享和重用构建逻辑。 最后,Ant的构建文件遵循一定的最佳...
这个jar包(xmltask.jar)提供了一种方式,使得我们可以在Ant脚本中添加、删除、修改XML元素,这对于读取和处理SVN版本信息非常有用,因为SVN的版本信息通常存储在XML格式的svn:log属性中。 要使用XMLTask,首先...
Move的用法和Copy用法基本一致,Move本身为Copy的子类。 1. Project prj=new Project(); 2. Copy copy=new Copy(); 3. copy.setProject(prj); 4. copy.setFile(new File("d:tempf1.txt"); 5. copy.setTodir(new ...
以下是一个简单的Ant脚本示例,演示如何将一批文件从GBK编码转换为UTF-8编码: ```xml 转换" basedir="."> <copy todir="${dest.dir}"> ${src.dir}"> <!-- 指定需要转换的文件类型 --> **/*.txt"/> ...
1. **Ant脚本**:Ant是基于Java的任务驱动的构建系统,通过XML文件(通常是`build.xml`)来定义构建过程,包括编译、测试、打包、部署等步骤。这里的Ant脚本被用于自动化远程部署的过程。 2. **本地代码copy到远程...
从这个最简单的构建脚本中,我们可以知道脚本的基本编写方法: 1. 脚本的根元素是: 2. 所有的任务,必须通过一个标签包围,一个标签,可以包含多个任务。 3. <copy>标签描述了一个任务,这些任务必须放到一个标签...
本手册详细介绍了Ant的工作原理、基本概念、配置语法以及各种任务的使用方法,旨在帮助开发者高效地管理项目构建流程。 在Ant中,构建过程被定义在一个名为`build.xml`的XML文件中,这个文件包含了所有构建任务的...
"Ant入门"可能是这个压缩包中的主要教程或者指南,它可能涵盖了Ant的基本概念、安装步骤、XML配置文件的结构、常用任务的使用方法以及如何编写自定义任务等内容。在Ant的学习过程中,了解这些基础知识是非常关键的。...
### ant实用实例 详细解析ant的用法 #### 一、Ant简介与基本概念 Apache Ant 是一个Java环境下的开源项目构建工具,主要用于自动化构建、部署等任务。它使用XML来描述构建过程,并且提供了丰富的任务(task)集合,...
### ant使用手册ANT使用指南 ...通过本教程的学习,你应该能够掌握Ant的基本使用方法,并能根据项目需求编写出高效的构建脚本。随着经验的积累,你可以进一步探索Ant的高级特性,以满足更为复杂的需求。
观看者可能会了解到如何通过Ant脚本来编译Java源代码、创建JAR文件、执行测试等日常开发任务。 "ANT.ppt":这是一个PowerPoint演示文稿,通常会包含Ant的关键概念、用法示例和最佳实践。可能的内容包括Ant的任务...
《Ant入门》是一本专为初学者设计的电子书,主要涵盖了Apache Ant这一构建工具的基础知识和使用方法。Ant是Java开发中广泛使用的自动化构建工具,由Apache软件基金会开发,其设计目标是简化项目构建过程,使开发者...
这个Word文档可能详细讲解了ANT的使用方法、配置步骤、常见问题及其解决策略,是学习和理解ANT的好资料。 【标签】:“ANT详细教程加world文档” 标签是对内容的简要概括,再次强调了资源的主题是关于ANT的教程和...
这些核心任务的使用方法将在书中详述。 4. **第三方任务和宏定义**:除了内置任务,Ant还允许用户自定义任务或使用第三方插件。书中可能涵盖如何引入和使用这些额外的任务。 5. **依赖关系与目标执行顺序**:Ant...
掌握常用任务的使用方法是基础。 4. **属性(Properties)**:属性允许在构建过程中存储和传递值,它们可以是全局的或局部的,通过property元素进行定义和引用。 5. **条件(Conditions)**:条件用于控制流程的...