学习笔记——ant

1 篇文章 0 订阅

ant是一种基于Java的生成工具。

ant的运行需要设置两个环境变量,JAVA_HOME, ANT_HOME.。

为了使用方便还需要将%ANT_HOME%/bin/ant.bat添加到PATH环境变量中。

ant命令在没有指定任何参数时,会在当前目录搜索build.xml文件作为生成文件。

 

build.xml通常放在项目的顶层目录中,如:
<project>
    │─src:
    │─classes:
    │─lib:   存放第三方jar包
    │─dist:       存放项目打包,项目发布文件
    │─build.xml:Ant生成文件

 
build.xml生成文件

<project.../>为根元素,可包含N个子元素<target.../>,每个代表一个生产目标,N个<property.../>用于定义属性,N个<path.../>用于定义文件和路径集。

<project.../>常用属性:

default:指定默认target,必需属性。

basedir:指定项目的基准路径。

name:项目名。

description:项目的描述信息。

<target.../>常用属性:

name:该target的名称,必需属性。

depends:指定N个target名,表示该target所依赖的targets。

if:指定一个属性名,表示仅当这个设置了这个属性时,才可执行该target。

unless:与if属性相左。

description:项目的描述信息。

<property.../>常用属性:

name:属性名。

value:属性值。

resource:资源名,Ant将从此属性文件中读取属性名和属性值。

file:文件名,Ant将从此属性文件中读取属性名和属性值。

url:URL地址,Ant将从此属性文件中读取属性名和属性值。

environment:指定系统环境变量前缀,用于访问系统环境变量。

classpath:搜索属性文件的文件和路径集。

classpathref:搜索属性文件的文件和路径集引用。

<path.../>和<classpath.../>都用于定义文件和路径集(可用属性id),

区别:classpath元素通常作为其他target的子元素,即可引用已有的,也个临时定义。path用于定义文件和路径集,常被引用,

<path.../>和<classpath.../>可接受的子元素。

pathelement:指定N个目录(可指定的属性:path,指定N个目录或JAR文件,用:或;分开,location指定一个目录或JAR文件)。

dirset:采用模式字符串指定系列目录(属性:dir指定目录集的根路径)(可用<include.../>和<exclude.../>子元素指定包含和不包含的目录)。

fileset:采用模式字符串指定系列文件(属性dir:根路径,必需属性,casesensitive:是否区分大小写)。

filelist:采用直接列出系列文件名的方式指定系列文件(属性dir:根路径,必需属性,files:文件名列表,用,或空白分开)(N个子元素<file.../>定义文件列表)。

 

ant常用的核心任务

javac, java, jar, sqk, echo, exec, copy, delete, mkdir, move等。

 

示例

build.xml

<?xml version="1.0" encoding="GBK"?>

<project name="antQs" basedir="." default="">
	
	<property file="build.properties"/>
	
	<path id="classpath">
		<pathelement path="${classes.home}"/>
	</path>
	
	
	<!-- ==================== Compile Target ================================== -->
	<target name="compile" description="编译Java源文件">
		<delete dir="${classes.home}"/>
		<mkdir dir="${classes.home}"/>
		<javac srcdir="${source.home}"
				destdir="${classes.home}"
				debug="${compile.debug}"
				deprecation="${compile.deprecation}" 
				optimize="${compile.optimize}">
			<classpath refid="classpath"/>
		</javac>
	</target>
	
	<!-- ==================== Archive Target ================================== -->
	<target name="archive" description="打包JAR文件" depends="compile">
		<delete dir="${dist.home}"/>
		<mkdir dir="${dist.home}"/>
		<jar destfile="${dist.home}/app.jar" basedir="${classes.home}" includes="**/*.class" />
	</target>
	
	<!-- ==================== Clean Target ==================================== -->
	<target name="clean" description="清除所有编译生成的文件">
		<delete dir="${classes.home}"/>
		<delete dir="${dist.home}"/>
	</target>
</project>


 

build.properties

#==================== File and Directory Names ========================
app.version=0.1

source.home=./src
lib.home=./WebContent/WEB-INF/lib
build.home=./build
dist.home=./dist
classes.home=./classes



#==================== Compilation Control Options =====================

compile.debug=true
compile.deprecation=false
compile.optimize=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值