Ant使用
2015-08-28 09:33
190 查看
详细可参考:http://ant.apache.org/manual/Tasks/
http://ant.apache.org/manual/index.html
说明:xml很多的元素的写法均可用属性或是子元素来实现
Ant
Ant 是一个构件工具,可以实现项目的自动构件和部署,其构件文件(一般默认是build.xml,也可以用命令进行指定其他的xml文件)是基于XML编写的。
其常用基本功能有:新建文件夹,移动文件夹,删除文件夹,复制文件夹,主要是用于进行Java项目的部署,对Java项目进行编译,运行,打包等工具,还可以与Junit结合进行单元测试。
因为Ant是基于XML的,其主要的元素有project,target,property,path, pathelement,fileset,junit.
project:是Ant构件文件的根元素,Ant构件文件至少包含一个project元素,每个project下面包含多个target元素;主要的属性有name(指定元素名称), default(指定默认执行的target名称), basedir(指定其路径的位置,默认为构件文件的所在目录)
target:是Ant的基本执行单元,包含一个或多个具体的任务,多个target可以互相依赖(一般这也是必要的),属性主要有name,depends,if,unlesss,description
property:可心看作是参数的定义,主要的属性有name,value(指定property的值), location(使property(预)指向一个文件(夹))
path,pathelement,fielset均与路径相关,路径字符串中用“;”或“:”表示分隔;path元素一般期待看到的是一个路径,而fileset则期待看到一个文件集合;path可以用内嵌的pathelement元素来指定若干的位置,pathelemet元素有两个属性,location可以声明一个路径,而path可以声明多个路径用“:”或“;”分开; fileset可以内嵌入path中,用于指定特定的文件;path的使用方式主要有id声明然后refid引用
path例子:
delete:属性有dir, file;
例子如下:
引用外部Ant文件:http://blog.csdn.net/samlei/article/details/4231496
例子:
Ant基本使用例子:
Ant与Java:
ant与junit结合:
ant与jar结合(推荐使用)
http://ant.apache.org/manual/index.html
说明:xml很多的元素的写法均可用属性或是子元素来实现
Ant
Ant 是一个构件工具,可以实现项目的自动构件和部署,其构件文件(一般默认是build.xml,也可以用命令进行指定其他的xml文件)是基于XML编写的。
其常用基本功能有:新建文件夹,移动文件夹,删除文件夹,复制文件夹,主要是用于进行Java项目的部署,对Java项目进行编译,运行,打包等工具,还可以与Junit结合进行单元测试。
因为Ant是基于XML的,其主要的元素有project,target,property,path, pathelement,fileset,junit.
project:是Ant构件文件的根元素,Ant构件文件至少包含一个project元素,每个project下面包含多个target元素;主要的属性有name(指定元素名称), default(指定默认执行的target名称), basedir(指定其路径的位置,默认为构件文件的所在目录)
target:是Ant的基本执行单元,包含一个或多个具体的任务,多个target可以互相依赖(一般这也是必要的),属性主要有name,depends,if,unlesss,description
property:可心看作是参数的定义,主要的属性有name,value(指定property的值), location(使property(预)指向一个文件(夹))
path,pathelement,fielset均与路径相关,路径字符串中用“;”或“:”表示分隔;path元素一般期待看到的是一个路径,而fileset则期待看到一个文件集合;path可以用内嵌的pathelement元素来指定若干的位置,pathelemet元素有两个属性,location可以声明一个路径,而path可以声明多个路径用“:”或“;”分开; fileset可以内嵌入path中,用于指定特定的文件;path的使用方式主要有id声明然后refid引用
path例子:
<path id="classpath"> <fileset dir="lib/optional" includes="*.jar"/> </path> <path id="tests-classpath"> <pathelement location="${build.classes}"/> <path refid="classpath"/> </path>
delete:属性有dir, file;
例子如下:
(1)删除单个文件的实例: <delete file="ant.jar"/> 这个例子的作用是删除基目录下的ant.jar文件。 (2)删除目录及其下文件的实例: <delete dir="lib"/> 这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。 <delete dir="lib" include="*.class"> 或者用fileset <delete> <fileset dir="." include="*.class"/> </delete>
引用外部Ant文件:http://blog.csdn.net/samlei/article/details/4231496
例子:
<?xml version="1.0"?> <project default="compile" name="Plugin Project" basedir="."> <description>My plugin</description> <property name="srcDir" location="."/> <property name="runDir" location="./../.." /> <path id="ij"> <pathelement path=".:./../../ij.jar"/> </path> <target name="init"> </target> <target name="compile" depends="init"> <javac srcdir="${srcDir}" destdir="${srcDir}"> <classpath> <path refid="ij" /> </classpath> </javac> </target> <target name="run" description="run the ImageJ with the external build.xml"> <ant antfile="build.xml" dir="${runDir}" inheritall="true" target="run"> </ant> </target> <target name="clean"> <delete> <fileset dir="." includes="*.class"/> </delete> </target> </project>
Ant基本使用例子:
<?xml version="1.0"?> <project name="study" default="compile" basedir="."> <property name="srcDir" value="firstProject"></property> <property name="destDir" value="copyfile"></property> <target name="init"> <mkdir dir="${destDir}"/> <mkdir dir="newdir" /> <copy todir="${destDir}"> <fileset dir="${srcDir}"/> </copy> </target> <!--输出信息(日志与监控器)有file,append属性--> <target name="echo" depends="init"> <echo message="Hello,Amigo" /> </target> <target name="compile" depends="init"> </target> <target name="move" depends="init"> <move todir="newdir"> <fileset dir="${srcDir}"/> </move> </target> <target name="clean" depends="init"> <delete file=""/> <delete dir="${destDir}"/> </target> </project>
Ant与Java:
<?xml version="1.0"?> <project default="run" name="Project Argon" basedir="."> <description>A simple Java project</description> <property name="srcDir" location="."/> <property name="buildDir" location="build"/> <property name="distDir" location="dist"/> <property name="main-class" value="Runners.RunnerDemo" /> <property name="main-class1" value="Runners.RunnerPart1" /> <property name="main-class2" value="Runners.RunnerPart2" /> <target name="init"> <tstamp/> <mkdir dir="${buildDir}"/> <mkdir dir="${distDir}"/> </target> <target name="compile" depends="init"> <javac srcdir="${srcDir}" destdir="${buildDir}"/> </target> <target name="run" depends="compile"> <java fork="true" classpath="${buildDir}" classname="${main-class}" /> </target> <target name="run1" depends="compile"> <java fork="true" classpath="${buildDir}" classname="${main-class1}" /> </target> <target name="run2" depends="compile"> <java fork="true" classpath="${buildDir}" classname="${main-class2}" /> </target> <target name="dist" depends="compile"> <jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}"> <manifest> <attribute name="Built-By" value="${user.name}"/> <attribute name="Main-Class" value="package.Main"/> </manifest> </jar> <jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/> </target> <target name="clean"> <delete dir="${buildDir}"/> <delete dir="${distDir}"/> <delete file="trash"/> <delete file="result.txt"/> </target> </project>
ant与junit结合:
<?xml version="1.0"?> <project default="junit" name="Project Argon" basedir="."> <description>A simple Java project</description> <property name="srcDir" location="."/> <property name="buildDir" location="build"/> <property name="distDir" location="dist"/> <property name="reportsDir" Location="report"/> <path id="tcls"> <pathelement path="./build" /> <pathelement path="."/> <pathelement path="./junit-4.9.jar" /> <pathelement path="./../ImageReader/ImageReader.jar" /> </path> <target name="init"> <tstamp/> <mkdir dir="${buildDir}"/> <mkdir dir="${distDir}"/> <mkdir dir="${reportsDir}" /> </target> <target name="compile" depends="init"> <javac classpath=".:./../ImageReader/ImageReader.jar:./junit-4.9.jar" srcdir="${srcDir}" destdir="${buildDir}"/> </target> <target name="junit" depends="compile"> <junit printsummary="yes"> <classpath> <path refid="tcls"/> </classpath> <formatter type="xml" usefile="true"/> <batchtest fork="yes" todir="${reportsDir}"> <fileset dir="." includes="*Test.java" /> </batchtest> </junit> <junitreport todir="${reportsDir}"> <fileset dir="${reportsDir}"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${reportsDir}/html"/> </junitreport> </target> <target name="dist" depends="compile"> <jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}"> <manifest> <attribute name="Built-By" value="${user.name}"/> <attribute name="Main-Class" value="package.Main"/> </manifest> </jar> <jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/> </target> <target name="clean"> <delete dir="${buildDir}"/> <delete dir="${distDir}"/> <delete dir="${reportsDir}"/> </target> </project>
ant与jar结合(推荐使用)
<?xml version="1.0" encoding="UTF-8"?> <project default="run" name="Project" basedir="."> <description>A simple Java project</description> <!-- 定义全局属性,使用location属性提供对不同平台的支持 --> <property name="srcDir" location="."/> <property name="buildDir" location="build" /> <property name="distDir" location="dist" /> <!-- 定义可运行主类 --> <property name="main-class" value="process.algorithms.Ch1Introduction" /> <!-- 设置classpath --> <path id="rt"> <pathelement path="./../rt.jar" /> </path> <path id="mainclass"> <pathelement path="process/algorithms" /> <pathelement path="./../rt.jar" /> </path> <!-- 初始化工程结构 --> <target name="init"> <mkdir dir="${buildDir}" /> <mkdir dir="${distDir}" /> </target> <!-- 编译工程 --> <target name="compile" depends="init"> <javac srcdir="${srcDir}" destdir="${buildDir}"> <classpath> <path refid="rt" /> </classpath> </javac> </target> <!-- 打包工程 --> <target name="package" depends="compile" description=""> <jar destfile="${distDir}/${ant.project.name}.jar" basedir="${buildDir}"> <manifest> <!-- 设置jar运行时的可运行主类 --> <attribute name="Main-Class" value="${main-class}"/> <attribute name="Built-By" value="Harrison Wang"/> </manifest> </jar> </target> <!-- 运行jar --> <target name="run" depends="package"> <java jar="${distDir}/${ant.project.name}.jar" fork="true"/> </target> <!-- 清理工程 --> <target name="clean"> <!-- <delete> <fileset dir="." includes="*.class"/> </delete> --> <delete dir="${buildDir}" /> <delete dir="${distDir}" /> </target> </project>
相关文章推荐
- php数字操作,高精度函数,保留计算结果小数位
- 设计模式之设计原则
- 字符编码
- Linux sysctl.conf 优化方案
- POJ 2562 Primary Arithmetic(高精度)
- HDU 1171 Big Event in HDU
- Gym 100733E Shi's throne(水题)
- sql关系型和no-sql非关系型数据库区别
- JPA简介
- 有一句说一千句,是作家....
- 面向对象编程其实很简单——Python 面向对象(初级篇) 推荐
- cinder list查询服务出现error
- POJ 2551 Ones(数论)
- C语言undefined behaviour未定义行为
- 第7章 进程环境
- TCP协议滑动窗口协议以及拥塞控制算法
- STM32系统时钟配置
- Android studio的下载安装配置详解 (下)
- 逆地理编码(根据经纬度找到地名)
- 前端学习笔记—CSS