Eclipse使用Ant插件打war包

Eclipse使用Ant插件打包

工程的根目录,创建build.xml文件,内容如下:

<?xml version="1.0"  encoding="UTF-8" ?>
<project name="mtcps" default="war" basedir=".">
	<!--
		===================================================================
		定义属性(property tasks)
		最好把用到的路径呀,名称呀都在这里定义成全局变量
		例:定义
		<property name="a" value="hello"/>
		以后就可以这样用它:
		<property name="b" value="${a}/b"/>
		现在:b=="hello/b"
		===================================================================
	-->
	<!--主要的系统环境属性-->
	<property environment="env" /><!--取window,unix...的环境变量-->
	<property name="java.home" value="${env.JAVA_HOME}" />
	<!--主要的app环境属性-->
	<property name="app.name" value="mtcps" />
	<property name="app.jar" value="${app.name}.jar" />
	<property name="app.war" value="${app.name}.war" />
	<property name="app.copyright"
		value=" Copyright (c) 2007 GLOBAL-SAFETY Software Foundation.  All rights reserved." />
	<!--app中src的属性-->
	<property name="src.dir" value="src" />
	<property name="classSavePath" value="web/WEB-INF/classes" />
	<!--app用到的lib-->
	<property name="lib.dir" value="web/WEB-INF/lib" />
	<!--app的build目录中-->
	<property name="build.dir" value="./output" />
	<property name="build.classes" value="${build.dir}/classes" />
	<property name="build.lib" value="web/WEB-INF/lib" />
	<property name="war.dir" value="${build.dir}/war" />
	<property name="warsource.dir" value="web" />
	<!--
		定义一组路径以后可以通过id重用这组路径 ,例:
		<javac srcdir="src/main" destdir="build/classes">
		<classpath refid="classpath"/>
		</javac>
	-->
	<path id="classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
			<include name="*.zip" />
		</fileset>
		<fileset dir="${java.home}/lib">
			<include name="**/*.jar" />
			<include name="*.zip" />
		</fileset>
	</path>
	<!--
		===================================================================
		init 准备目录(File Tasks)
		主要的目录结构通常是不会变的,一起生成他们
		===================================================================
	-->
	<target name="init">
		<echo message="环境信息:" />
		<echo message="JAVA_HOME:${java.home}" />
		
		<!--清除以前目录-->
		<delete dir="${build.dir}" failonerror="on" />
		<delete dir="${classSavePath}" failonerror="on" />
		<!--准备目录-->
		<mkdir dir="${build.dir}" />
		<mkdir dir="${classSavePath}" />
	</target>
	<!--
		===================================================================
		Build the code (Compile Tasks,File Tasks)
		===================================================================
	-->
	<target name="build" depends="init">
		<!--编译-->
				<javac srcdir="${src.dir}" destdir="${classSavePath}"
					encoding="UTF-8" fork="true" memoryMaximumSize="1024m" debug="true">
					<classpath refid="classpath" />
				</javac>
				<copy todir="${classSavePath}" includeemptydirs="false">
					<fileset dir="${src.dir}">
						<include name="**/*.properties" />
						<include name="**/*.xml" />
						<include name="**/*.xsl" />
					</fileset>
				</copy>
	</target>
	<!--
		===================================================================
		打war包
		===================================================================
	-->
	<target name="war" depends="build" description="生成war包">
		<echo message="正在打war包,请稍候..." />
		<war destfile="${build.dir}/${app.war}"
			webxml="${warsource.dir}/WEB-INF/web.xml">
			<fileset dir="${warsource.dir}">
				<exclude name="build.xml" />
				<exclude name="**/web.xml" />
			</fileset>
		</war>
		<echo message="打war包结束" />
	</target>
	
	<!--
		===================================================================
		快速(依靠原工程编译文件)打war包
		===================================================================
	-->
	<target name="quick-war" depends="" description="生成war包">
		<echo message="非重新build打war包(请保证您的工程$/web/WEB-INF/classes已有下编译类),请稍候..." />
		<war destfile="${build.dir}/${app.war}"
			webxml="${warsource.dir}/WEB-INF/web.xml">
			<fileset dir="${warsource.dir}">
				<exclude name="build.xml" />
				<exclude name="**/web.xml" />
			</fileset>
		</war>
		<echo message="打war包结束" />
	</target>
	<!-- 
		===================================================================
		打war包之后清理痕迹,由于目前不再打jar包到lib下,所以此结点可以忽略
		可以直接运行default结点即可
		===================================================================
	 -->
	<target name="clear" depends="" description="清理过程">
		<echo message="清理痕迹,请稍候..." />
		<delete file="${build.lib}/${app.jar}" failonerror="false"></delete>
		<echo message="清理结束" />
	</target>
	
</project>

 右键,运行Ant Build即可打包

猜你喜欢

转载自yuwenlin.iteye.com/blog/2213737