ant的一个例子

我用了两个文件,利用了继承关系,父XML build-compile.xml如下:
<project name="project" basedir="../../" default="all">
	<tstamp prefix="build">
		<format property="date" pattern="yyyyMMdd"/>
	</tstamp>

	<property name="module.dist.dir" value="${module.dir}/dist"/>
	<property name="lib.dir" value ="dacx-thirdparty"/>
	<property name="module.javasrc.dir" value="${module.dir}/javasrc"/>
	<property name="module.business.dir" value="${module.javasrc.dir}/business"/>
	<property name="module.web.dir" value="${module.javasrc.dir}/web"/>
	<property name="module.impl.dir" value="${module.business.dir}/impl"/>
	<property name="module.interface.dir" value="${module.business.dir}/interface"/>
	<property name="module.entity.dir" value="${module.javasrc.dir}/ibatis"/>
	<property name="module.dto.dir" value="${module.business.dir}/dto"/>
	<property name="module.websrc.dir" value="${module.web.dir}"/>
	<property name="module.util.dir" value="${module.javasrc.dir}/utils"/>


	<path id="project.class.path">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	
	<target name="clear">
		<delete dir="${module.dist.dir}/jars"/>
		<delete dir="${module.dist.dir}/interface"/>
		<delete dir="${module.dist.dir}/impl"/>
		<delete dir="${module.dist.dir}/web"/>
		<delete dir="${module.dist.dir}/dto"/>
		<delete dir="${module.dist.dir}/entity"/>
	</target>
	
	<target name="init" depends="clear">
		<mkdir dir="${module.dist.dir}/jars"/>
		<mkdir dir="${module.dist.dir}/interface"/>
		<mkdir dir="${module.dist.dir}/impl"/>
	    <mkdir dir="${module.dist.dir}/web"/>
		<mkdir dir="${module.dist.dir}/dto"/>
		<mkdir dir="${module.dist.dir}/entity"/>
	</target>

	<target name="entity_compile" depends="init">
		<javac srcdir="${module.entity.dir}" source="1.5" description="将javasrc/ibatis目录下的类编译成class到dist/ibatis目录下,
		在这个过程中,因为javasrc/ibatis依赖于很多jar包。所以这里将dacx-thirdparty所有的jar包都支持了进去。classpath指明了这些包的路径,还将dist下已经编译好了的jar也加进去了"
			destdir="${module.dist.dir}/entity" debug="true" encoding="UTF-8" failonerror="false">
			<classpath>
				<fileset dir="${module.dist.dir}/jars">
					<include name="*.jar"/>
				</fileset>
			</classpath>
			<classpath refid="project.class.path"/>
		</javac>

		<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-entity.jar">
			<zipfileset dir="${module.dist.dir}/entity">
				<include name="**/*.class"/>
				<include name="**/*.xml"/>
				<include name="**/*.properties"/>
			</zipfileset>
			<zipfileset dir="${module.entity.dir}">
				<include name="**/*.xml"/>
				<include name="**/*.properties"/>
			</zipfileset>
		</jar>
	</target>

	<target name="dto_compile" >
		<javac srcdir="${module.dto.dir}" source="1.5"
			destdir="${module.dist.dir}/dto" debug="true" encoding="UTF-8" failonerror="false">
			<classpath>
				<fileset dir="${module.dist.dir}/jars">
					<include name="*.jar"/>
				</fileset>
			</classpath>
			<classpath refid="project.class.path"/>
		</javac>
		<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-dto.jar">
			<zipfileset dir="${module.dist.dir}/dto">
				<include name="**/*.class"/>
				<include name="**/*.properties"/>
			</zipfileset>
			<zipfileset dir="${module.dto.dir}">
				<include name="**/*.properties"/>
			</zipfileset>
		</jar>
	</target>

	<target name="interface_compile" >
		<javac
			srcdir="${module.util.dir}:
		   		${module.interface.dir}"
			source="1.5" destdir="${module.dist.dir}/interface" debug="true"
			encoding="UTF-8" failonerror="false">
			<classpath>
				<fileset dir="${module.dist.dir}/jars">
					<include name="*.jar"/>
				</fileset>
			</classpath>
			<classpath refid="project.class.path"/>
		</javac>

		<jar
			destfile="${module.dist.dir}/jars/dacx-${module.name}-interface.jar">
			<zipfileset dir="${module.dist.dir}/interface">
				<include name="**/*.class"/>
				<include name="**/*.dtd"/>
				<include name="**/*.properties"/>
			</zipfileset>
			<zipfileset dir="${module.util.dir}">
				<include name="**/*.dtd"/>
				<include name="**/*.properties"/>
			</zipfileset>
			<zipfileset dir="${module.interface.dir}">
				<include name="**/*.dtd"/>
				<include name="**/*.properties"/>
			</zipfileset>
		</jar>
	</target>

	<target name="impl_compile" >
		<javac srcdir="${module.util.dir}:${module.impl.dir}" source="1.5"
			destdir="${module.dist.dir}/impl" debug="true" encoding="UTF-8" 
			failonerror="false">
			<classpath>
				<fileset dir="${module.dist.dir}/jars">
					<include name="*.jar"/>
				</fileset>
			</classpath>
			<classpath refid="project.class.path"/>
		</javac>

		<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-impl.jar">
			<zipfileset dir="${module.dist.dir}/impl">
				<include name="**/*.class"/>
				<include name="**/*.dtd"/>
				<include name="**/*.properties"/>
				<include name="**/*.bsh"/>
			</zipfileset>
			
			<zipfileset dir="${module.impl.dir}">
				<include name="**/*.dtd"/>
				<include name="**/*.properties"/>
				<include name="**/*.bsh"/>
			</zipfileset>
		</jar>
	</target>

	<target name="web_compile" >

		<javac srcdir="${module.websrc.dir}" source="1.5"
			destdir="${module.dist.dir}/web" debug="true" encoding="UTF-8"
			failonerror="false">

			<classpath>
				<fileset dir="${module.dist.dir}/jars">
					<include name="*.jar"/>
				</fileset>
			</classpath>
			<classpath refid="project.class.path"/>
		</javac>

		<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-web.jar">
			<zipfileset dir="${module.dist.dir}/web">
				<include name="**/*.class"/>
				<include name="**/*.properties" />
			</zipfileset>
		</jar>
	</target>

	<target name="all"
		depends="entity_compile,dto_compile,interface_compile,impl_compile,web_compile"/>

</project>




子文件如下:
<project name="dacx" basedir="../" default="all">
	<tstamp prefix="build">
		 <format property="date" pattern="yyyyMMdd"/>
	</tstamp>
	
	<property file="script/build.properties" description="加载引用的属性文件" />
	
	
	<path id="project.class.path" description="提供需要用到的包的地址:lib.dir =../dacx-thirdparty">
			<fileset dir="${lib.dir}">
			
				<include name="**/*.jar"/>
				<exclude name="bo-lib/*.jar"></exclude>
			</fileset>		
	</path>		
	<target name="clear" description="删除编译了的文件:dacx下的dist目录下的文件,包括编译好了的class文件和jar文件">
		 <ant antfile="${build.template.dir}/build-compile.xml" target="clear" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	
	<target name="init" description="在dacx下创立dist文件夹">
		 <ant antfile="${build.template.dir}/build-compile.xml" target="init" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	
	<!--entity_compile-->
	<target name="entity_compile" depends="init" description="将javasrc/ibaits目录下的类编译成calss放到/dist/entity目录下">
		 <ant antfile="${build.template.dir}/build-compile.xml" target="entity_compile" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	
	<target name="dto_compile" depends="entity_compile">
		 <ant antfile="${build.template.dir}/build-compile.xml" target="dto_compile" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	

	<!--interface_compile-->
	<target name="interface_compile" >
		 <ant antfile="${build.template.dir}/build-compile.xml" target="interface_compile" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	<!--impl_compile�-->
	<target name="impl_compile">
		 <ant antfile="${build.template.dir}/build-compile.xml" target="impl_compile" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	<!--web_compile-->
	<target name="web_compile" >
		<ant antfile="${build.template.dir}/build-compile.xml" target="web_compile" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>	 
	</target>
	
	<target name="copy-dist">
		<ant antfile="${build.template.dir}/build-deploy.xml" target="copy-dist" inheritall="false">
			 <property name="module.name" value="${module.name}"/>
			 <property name="module.dir" value="${module.dir}"/>
		 </ant>		
	</target>
	<!--all_compile-->
	<target name="all_compile" depends="clear,init,entity_compile,dto_compile,
		interface_compile,impl_compile,web_compile"/>
	<target name="all" depends="all_compile,copy-dist"/>

</project>


属性文件
module.name =dacx

module.dir=${module.name}

module.javasrc.dir=javasrc

module.business.dir=${module.javasrc.dir}/business

module.web.dir=${module.javasrc.dir}/web

module.impl.dir=${module.business.dir}/impl

module.interface.dir=${module.business.dir}/interface

module.entity.dir=${module.javasrc.dir}/ibatis

module.dto.dir=${module.business.dir}/dto

module.util.dir=${module.javasrc.dir}/utils


webapp.dir=rhm-dacx

webapp.lib.dir=WEB-INF

module.dist.dir=dist

module.config.dir=config

lib.dir =../dacx-thirdparty
build.template.dir=${lib.dir}/build-module

你可能感兴趣的:(xml,Web,ant,ibatis)