Ant简要介绍

本文介绍了使用Ant构建工具在Amoeba项目中的基本应用,包括build.xml文件的解析、target与property的概念,并通过具体示例展示了如何进行编译、打包等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里介绍的是下一篇文章《Amoeba源代码导入eclipse的方法》的基础,所以这里涉及的不是ant的全面的知识,而只是下篇文章要用到的ant的知识。

1.Amoeba工程是用Ant发布的,这也是众多的开源工程所选择的源码发布方式。这种工程的最重要的一个文件是build.xml文件。里面就是Ant的详细过程。

2.build文件中的target指的是一段可以独立执行的ant指令的集合,在amoeba的build文件中经常出现。target有个depends属性,这个属性表示这个target的依赖target,被依赖的target会在调用依赖的target执行执行;

3.property标签定义的是一些变量,这个没有什么复杂的;

4.下面是一个较简单的Ant文件(Amoeba的mysql的build文件):

<?xml version="1.0" encoding="GB2312"?>    //这是千篇一律
<project default="dist" name="amoeba-mysql" basedir=".">//工程名是amoeba-mysql,默认执行的target是dist,根目录是当前目录
  	<property name="version"     value="2.1.0-RC5"/>//定义变量version,值为2.1.0.RC5
  	<property name="app.name"     value="amoeba-mysql"/>//定义变量app.name,值为amoeba-mysql
  	<property name="deploy.dir"   value="dist"/>//定义变量deploy.dir,值为dist
  	<property name="savedoc.dir"  value="docs"/>//定义变量savedoc.dir,值为docs
  	<property name="javadoc.home" value="${deploy.dir}/document"/>//定义变量javadoc.home,值为dist/document
  	<property name="classes.dir"  value="${deploy.dir}/classes"/>//同上
  	<property file="${basedir}/build.properties" />//文件位置,存放了其他的相关的变量,和上述变量一样

  	<path id="classpath">//定义文件路径
  		<pathelement location="${classes.dir}"/>
    	<fileset dir="${libs.dir}" includes="**/*.jar"/>//文件列表,这里表示所有的jar文件
    	<fileset dir="${project.libs.dir}" includes="**/*.jar"/>
  	</path>
	

	<target name="compile" depends="prepare">//定义名为compile的target。它依赖名为prepare的target。
		    <javac srcdir="src/java" destdir="${classes.dir}"  encoding="GBK" includeAntRuntime="false"
		           debug="on" optimize="{$build.optimize}" deprecation="on"
		           source="1.5" target="1.5">//编译src/jave文件下面的源代码,输出到
${classes.dir}中,即dist/classes
 	<classpath refid="classpath"/>//引用其他路径 
	<!-- <compilerarg value="-Xlint:unchecked"/> -->
	 </javac> 
	<javac srcdir="src/java.test" destdir="${classes.dir}" encoding="GBK" includeAntRuntime="false		" debug="on" optimize="{$build.optimize}" deprecation="on" source="1.5" target="1.5"> 	<classpath refid="classpath"/>
	 </javac>
	 </target> <!-- common clean tasks --> <target name="distclean">//新建名为distclean的target 
	<delete dir="${deploy.dir}"/>//删除dist文件夹
	 </target>
	 <target name="prepare">//新建名为prepare的target
		<mkdir dir="${deploy.dir}"/>//新建一个目录
		<mkdir dir="${deploy.dir}/classes"/><copy todir="${classes.dir}"> 
			<fileset dir="src/java" > 
				<exclude name="*/.svn/*"/>
				 <exclude name="**/*.java"/> 
			</fileset></copy> </target>
	 <target name="dist" depends="compile">//新建名为dist的target,它依赖名为compile的target <mkdir dir="${deploy.dir}"/>
	<echo>${classes.dir}</echo> 
	<jar destfile="${deploy.dir}/${app.name}-${version}.jar" index="true"> 
	<fileset dir="${classes.dir}" casesensitive="yes">
		 <exclude name="**/test/*.class"/> </fileset>
	 </jar>
	 <jar destfile="${deploy.dir}/${app.name}-test-${version}.jar" index="true"> 
		<fileset dir="${classes.dir}" casesensitive="yes"> 
			<include name="**/test/**/*"/> </fileset> 
	</jar> 
	</target> 
	<target name="server" description="Amoeba for Mysql" depends="compile"> 
		<java classname="com.meidusa.amoeba.mysql.server.MysqlProxyServer" fork="true" maxmemory="128m"> 
		<sysproperty key="amoeba.home" value="${basedir}"/> 
	<classpath>
	<fileset dir="${libs.dir}">
		<include name="**/*.jar"/>
		<include name="classes"/>
		<exclude name="amoeba-*.jar"/>
	</fileset>
	 <pathelement path="target/classes"/> 
	</classpath>
	 </java>
	</target>
	</project>

(不知道为什么上面的代码就是不能放在一个灰色框中!)


以上的amoeba要用到的ant的最基础的知识,当然一些关于ant的介绍性的知识肯定还是需要的,这些知识请自行查阅吧!

推荐一本专门介绍ant的书籍:

林艺雄,《Ant开发及整合应用详解》,清华大学出版社,ISBN:978-7-302--15136-4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值