ant学习
最简单的ant例子:
<?xml version="1.0"?>
<project default="init" name="Project Argon">
<description>
A simple project introducing the use of descriptive tags in Ant build files.
</description>
<!-- XML comments can also be used -->
<target name="init" description="Initialize Argon database">
<!-- perform initialization steps here -->
</target>
</project>
(1)定义属性
<property name="metal" value="beryllium"/>
要在生成文件的其他部分引用这个属性,您会使用以下语法:
${metal}
ant自带属性:
${ant.version},Ant 的版本;
${basedir}, 项目目录的绝对路径
文件路径问题:(平台无关性)
ant自带的location属性可以解决路径分隔符问题,如:
<property name="database-file" location="archive/databases/${metal}.db"/>
<property name="database-file" location="archive/databases/${metal}.db"/>
(2)依赖关系
使用target下的depend属性
<target name="preprocess" depends="需要完成的target名字,多个的话用逗号隔开">
执行顺序是由depends 属性唯一确定的。与target标签在文件中的位置无关
(3)编译java代码
<javac srcdir="src"/> //编译src下后缀名为.java的文件
可用属性:
classpath:等价于 javac 的 -classpath 选项
destdir: 存储编译好的类文件
(4)打包jar文件
<jar destfile="package.jar" basedir="classes">
destfile:打包后的名字
basedir:要打包的class文件的位置
(5)时间戳生成
只需在初始化时加入<tstamp/>,如在打包jar包时可以作用:
<jar destfile="package-${DSTAMP}.jar" basedir="">
主要有三个属性标准:
DSTAMP:默认格式为yyyymmdd
TSTAMP:默认格式为 hhmm
TODAY:带完整的月份,如2003 年 12 月 17 日
(6)创建和删除目录
<mkdir dir="目录名">
如:
<property name="distDir" location="dist"/>
<mkdir dir="${distDir}"/>
此时会在根目录下创建一个dist文件夹
<mkdir dir="a/b/c"/>
<delete dir="a"/> //删除a目录
<delete file=""/> //删除指定的文件
(7)复制和移动文件及目录
<copy file="src/Test.java" tofile="src/TestCopy.java"/> //复制
<move file="src/Test.java" tofile="src/TestCopy.java"/> //移动
<copy file="src/Test.java" todir="archive"/> //复制到对应目录下
<move file="src/Test.java" todir="archive"/> //移动到对应目录下
(8)模式匹配
<copy todir="archive">
<fileset dir="src">
<include name="*.java"/>
</fileset>
</copy>
复制指定路径下以java为后缀的文件到指定目录下
还可以使用<exclude>标签过滤掉一些<include> 包含的文件