Ant脚本 通用例子

说明

1.一个标准的,通用的ant脚本。可以在此基础上进行修改拓展,满足应用。

2.该配置文件包含5个target。执行这5个target使用如下命令:

(1)ant help :生成该文件的帮助信息

(2)ant compile 编译java文件

(3)ant run运行 lee.HelloTest类

(4)ant build将classes路径下所有class文件打包成 app.jar,并放到dest目录下

(5)ant clean 删除classes和dest两个目录

<?xml version="1.0" encoding="GBK"?>
<!-- 定义生成文件的project根元素,默认的target为空 -->
<project name="antQs" basedir="." default="">
	<!-- 定义三个简单属性 -->
	<property name="src" value="src"/>
	<property name="classes" value="classes"/>
	<property name="dest" value="dest"/>
	<!-- 定义一组文件和目录集 -->
	<path id="classpath">
		<pathelement path="${classes}"/>
	</path>
	<!-- 定义help target,用于输出该生成文件的帮助信息 -->
	<target name="help" description="打印帮助信息">
		<echo>help - 打印帮助信息</echo>
		<echo>compile - 编译Java源文件</echo>
		<echo>run - 运行程序</echo>
		<echo>build - 打包JAR包</echo>
		<echo>clean - 清除所有编译生成的文件</echo>
	</target>
	<!-- 定义compile target,用于编译Java源文件 -->
	<target name="compile" description="编译Java源文件">
		<!-- 先删除classes属性所代表的文件夹 -->
		<delete dir="${classes}"/>
		<!-- 创建classes属性所代表的文件夹 -->
		<mkdir dir="${classes}"/>
		<!-- 编译Java文件,编译后的class文件放到classes属性所代表的文件夹内 -->
		<javac destdir="${classes}" debug="true" includeantruntime="yes"
			deprecation="false" optimize="false" failonerror="true">
			<!-- 指定需要编译的Java文件所在的位置 -->
			<src path="${src}"/>
			<!-- 指定编译Java文件所需要第三方类库所在的位置 -->
			<classpath refid="classpath"/>
		</javac>
	</target>
	<!-- 定义run target,用于运行Java源文件,
		运行该target之前会先运行compile target -->
	<target name="run" description="运行程序" depends="compile">
		<!-- 运行lee.HelloTest类,其中fork指定启动另一个JVM来执行java命令 -->
		<java classname="lee.HelloTest" fork="yes" failonerror="true">
			<classpath refid="classpath"/>
			<!-- 运行Java程序时传入2个参数 -->
			<arg line="测试参数1 测试参数2"/>
		</java>
	</target>
	<!-- 定义build target,用于打包JAR文件,
		运行该target之前会先运行compile target -->
	<target name="build" description="打包JAR文件" depends="compile">
		<!-- 先删除dest属性所代表的文件夹 -->
		<delete dir="${dest}"/>
		<!-- 创建dest属性所代表的文件夹 -->
		<mkdir dir="${dest}"/>
		<!-- 指定将classes属性所代表的文件夹下的所有
			*.classes文件都打包到app.jar文件中 -->
		<jar destfile="${dest}/app.jar" basedir="${classes}"
			includes="**/*.class">
			<!-- 为JAR包的清单文件添加属性 -->
			<manifest>
				<attribute name="Main-Class" value="lee.HelloTest"/>
			</manifest>
		</jar>
	</target>
	<!-- 定义clean target,用于删除所有编译生成的文件 -->
	<target name="clean" description="清除所有编译生成的文件">
		<!-- 删除两个目录,目录下的文件也一并删除 -->
		<delete dir="${classes}"/>
		<delete dir="${dest}"/>
	</target>
</project>

分享到:

发表评论

昵称

沙发空缺中,还不快抢~