`

ANT再学习及实践

阅读更多

之前也学过ANT,在项目中别人已经写好了。自己没有真正去写过,感觉少了点什么。。

今天自己再写一下。

 以下ant文件,编译项目,并在项目源码的文件war文件下打了一个war包。

然后还可以将该war包拷贝到本机的tomcat目录。

<project basedir="." name="SpringStrutsHibernate" default="warfile">
	<!--basedir 可设为任何目录名,设为.代表build.xml文件所有的目录-->
	
	<property name="web.app.name" value="SpringStrutsHibernate"/>
	<property name="web.content.name" location="WebContent"/>
	<property name="dist.dir" value="dist"/>
	<property name="war.dir" value="war"/>
	<property name="web.server.dir" value="D:\Program Files\apache-tomcat-6.0.20"/>
	<property name="web.server.dir.lib" value="${web.server.dir}/lib"/>
	<property name="web.server.dir.webapps" value="${web.server.dir}/webapps"/>
	<property name="dist.webinf.classes" location="${dist.dir}/WEB-INF/classes"/>
	<property environment="system"/>
	
	<path id="master-classpath">
		<pathelement location="${system.JAVA_HOME}/lib/tools.jar"/>
		<fileset dir="${dist.dir}/WEB-INF/lib">
			<include name="*.jar"/>
		</fileset>
		<fileset dir="${web.server.dir.lib}">
			<include name="*.jar"/>
		</fileset>
	</path>
	
	<target name="clean" description="clean the dir">
		<echo message="Clean the dir : ${dist.dir}"></echo>
		<delete dir="${dist.dir}"></delete>
		<delete dir="${war.dir}"></delete>
	</target>
	
	<target name="copy" depends="clean">
		<echo message="Make the dir : ${dist.dir}"/>
		<mkdir dir="${dist.dir}"/>
		
		<copy todir="${dist.dir}" overwrite="true">
			<fileset dir="${web.content.name}">
				<!-- 在目录下的所有文件和各子目录下的所有文件-->
				<!--<include name="**/*"/>-->
				<!-- 在目录下的所有文件和目录名-->
				<!--<include name="*"/>--> 
				<!-- 在本目录下及本目录的所有子目录下所有以jsp为后缀的文件-->
				<include name="**/*.jsp"/>
				<include name="**/*.jspf"/>
				<include name="**/*.js"/>
				<include name="**/*.css"/>
				<include name="META-INF/*.*"/>
				<!--WEB-INF目录下的所有文件及目录名 -->
				<include name="WEB-INF/*.*"/>
				<!--WEB-INF/lib目录下的所有文件及所有子目录文件 -->
				<include name="WEB-INF/lib/**"/>
				<!--<include name="WEB-INF/classes/**"/>-->
			</fileset>
		</copy>
	</target>
	
	<target name="build" depends="copy">
			<echo message="JAVA_HOME is set to =${system.JAVA_HOME}"></echo>
			<mkdir dir="${dist.webinf.classes}"/>
			<javac 
				destdir="${dist.webinf.classes}" 
				srcdir="src"
				debug="off"
				deprecation="on"
				optimize="on"
				failonerror="true"
				fork="yes"
				executable="${system.JAVA_HOME}/bin/javac"
				
				>
				<classpath refid="master-classpath"></classpath>
			</javac>
			<echo message="copy the properties to deploy dir"/>
			<copy todir="${dist.webinf.classes}" >
				<fileset dir="src">
					<include name="*.properties"/>
				</fileset>
			</copy>
		
	</target>
	
	<target name="jarfile" description="jar file">
		<jar destfile="${dist.dir}/test.jar" basedir="${web.content.name}">
			<include name="**/*.class"/>
		</jar>
	</target>
	
	<target name="warfile" description="warfile" depends="build">
		<mkdir dir="${war.dir}"/>
		<war warfile="${war.dir}/${web.app.name}.war" basedir="${dist.dir}" webxml="${dist.dir}/WEB-INF/web.xml">
			<include name="**/*"/>
		</war>
		<delete dir="${dist.dir}"></delete>
	</target>
	
	<target name="copy2tomcatroot" depends="warfile">
		<delete dir="${web.server.dir.webapps}/${web.app.name}"></delete>
		<copy todir="${web.server.dir.webapps}" overwrite="true" >
			<fileset dir="${war.dir}">
				<include name="*.war"/>
			</fileset>
		</copy>
	</target>
	
	
</project>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics