ant 打包总结
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="appbuild" name="MyApp">
<property file="build.properties" />
<!--编译classpath设置 -->
<path id="build.classpath">
<fileset dir="WebRoot/WEB-INF/lib">
<include name="**/*.jar" />
</fileset>
<pathelement path="${webapp.build.classesdir}" />
</path>
<!-- 以下代码为自动打包 -->
<target name="appbuild" depends="ant">
<echo message="生成产品安装包..." />
<!--放入运行包-->
<copy file="${webapp.output}/${webapp.version}.tar.gz" todir="${webapp.output}" failonerror="true" />
</target>
<!-- 清除文件夹 编译build、output安装包-->
<target name="clean">
<delete dir="${webapp.build}" />
<delete dir="${webapp.output}" />
<mkdir dir="${webapp.build}" />
<mkdir dir="${webapp.output}" />
</target>
<!-- jetty解包-->
<target name="untarjetty">
<gunzip src="${webapp.jetty}.gz" dest="${webapp.output}" />
<untar src="${webapp.output}/MyApp.tar" dest="${webapp.output}/install" overwrite="true" />
<delete file="${webapp.output}/MyApp.tar">
</delete>
</target>
<!-- java源码编译-->
<target name="compile">
<mkdir dir="${webapp.build.classesdir}" />
<javac debug="on" deprecation="yes" destdir="${webapp.build.classesdir}" includes="**" optimize="on" srcdir="src">
<classpath refid="build.classpath" />
<compilerarg line="-encoding UTF-8 " />
</javac>
</target>
<!-- 编译打包-->
<target name="webbuild" depends="clean,untarjetty,compile">
<copy todir="${webapp.output}/install/db_script">
<fileset dir="${webapp}/db_script/"></fileset>
</copy>
<mkdir dir="${webapp.output.webctx}" />
<touch file="${webapp.output.webctx}/${webapp.version}.version"/>
<!-- 拷贝原工程下的webroot到待打包的目录-->
<copy todir="${webapp.output.webctx}">
<fileset dir="${webapp.src.WebRoot}/">
</fileset>
</copy>
<!-- 拷贝源码编译后的相关class和resource配置文件到待打包的目录-->
<copy todir="${webapp.output.webctx}/WEB-INF/classes/">
<fileset dir="${webapp.build.classesdir}">
<exclude name="**/*.src" />
</fileset>
<fileset dir="${webapp}/conf">
<include name="**/*.properties" />
<include name="**/*.xml" />
<include name="**/*.txt" />
</fileset>
</copy>
<!-- jar拷贝-->
<copy todir="${webapp.output.webctx}/WEB-INF/lib">
<fileset dir="${webapp.lib}" />
</copy>
<!-- 源码conf配置文件拷贝到打包的jetty目录-->
<delete dir="${webapp.output}/conf">
</delete>
<copy todir="${webapp.output}/install/MyApp-jetty/MyApp/conf" overwrite="true">
<fileset dir="${webapp}/MyApp/conf">
<exclude name="**/*.svn" />
</fileset>
</copy>
</target>
<!-- 配置文件xml拷贝-->
<target name="ant" depends="webbuild">
<!--生成WAR包-->
<zip destfile="${webapp.output}/MyApp.war" basedir="${webapp.output.webctx}" encoding="UTF-8" />
<delete dir="${webapp.output.webctx}/WEB-INF/lib/WEB-INF" />
<tar destfile="${webapp.output}/${webapp.version}.tar">
<tarfileset dir="${webapp.output}/install" preserveLeadingSlashes="true">
</tarfileset>
</tar>
<gzip destfile="${webapp.output}/${webapp.version}.tar.gz" src="${webapp.output}/${webapp.version}.tar" />
<delete file="${webapp.output}/${webapp.version}.tar" />
<delete dir="${webapp.output}/install" />
<delete dir="${webapp.build}" />
</target>
</project>
build.properties:
appname=myApp
###########################################################
#fuc global variables
###########################################################
webapp=${basedir}
webapp.version=DEPGM_V100R001B03
webapp.main=${webapp}/src/
webapp.java=${webapp.main}
webapp.test=${webapp}/test/
webapp.src.confpath=${webapp}/conf
webapp.src.WebRoot=${webapp}/WebRoot
webapp.build=${webapp}/build
webapp.script=${webapp}/tools/deploy_script
webapp.table=${webapp}/tools/configureTable
webapp.build.classesdir=${webapp.build}/classes
webapp.build.test.classesdir=${webapp.build}/test/classes
webapp.jetty=${basedir}/tools/myApp.tar
webapp.lib=${webapp.src.WebRoot}/WEB-INF/lib
webapp.output=${webapp}/output
webapp.output.software=${webapp.output}/software
webapp.output.webctx=${webapp.output}/install/myApp-jetty/webapps/myApp
app.tools=${basedir}/tools
compile.debug=true
compile.optimize=true
compile.encoding=UTF-8
compile.deprecation=false