ANT(build)脚本模板示例
近来虽然Maven构建的项目越来越盛行,但是依然还有很多遗留(暂且称之为遗留吧)项目依然是由ANT编译的,今天老夫就整理一下自己目前公司项目用到的ANT模板,既作为老夫的学习笔记,以供将来查看,也分享出来供需要的参考,因为比较简单易懂,就不多说了,直接上代码
<?xml version="1.0" encoding="UTF-8"?> <!-- Ant工程build模板 ant build file Example: ant -Dprofile=dev deploy test IDC测试环境 dev 本地开发环境 (default) --> <project name="antProject" basedir="." default="prompt"> <property name="javac.version" value="1.6" /> <property name="project.name" value="projectname" /> <property name="source.encoding" value="UTF-8" /> <property name="deploy.dir" value="/tmp/${project.name}" /> <!-- project var set --> <property name="target.path" value="build" /> <property name="target.root.path" value="${target.path}/ROOT" /> <property name="target.root.classes" value="${target.root.path}/WEB-INF/classes" /> <property name="webroot.path" value="WebRoot" /> <property name="compileSrc" value="src" /> <property name="compileDest" value="${target.root.classes}" /> <property name="env.dir" value="env" /> <property name="env.cfg" value="${env.dir}/${profile}" /> <tstamp> <format property="now" pattern="yyyyMMddHHmmss" /> </tstamp> <path id="compileClassPath"> <fileset dir="${webroot.path}/WEB-INF/lib"> <include name="*.jar" /> </fileset> </path> <target name="prompt" description="show prompt information"> <echo>Please choose task: clean, compile, war, deploy. ${line.separator} Example: ${line.separator} ant compile ${line.separator} ant -Dprofile=test deploy </echo> </target> <target name="clean"> <delete dir="${target.path}" /> <mkdir dir="${target.path}" /> <delete dir="${compileDest}" /> <mkdir dir="${compileDest}" /> <delete dir="${target.root.classes}" /> <mkdir dir="${target.root.classes}" /> <echo>cleaned for ${compileDest}, ${target.root.path},${target.path}/*.war</echo> </target> <target name="compile" depends="clean,testIfProfileSet"> <echo>starting compile the source from ${compileSrc}</echo> <javac srcdir="${compileSrc}" includeantruntime="false" fork="true" memoryinitialsize="256m" memorymaximumsize="512m" destdir="${compileDest}" classpathref="compileClassPath" encoding="${source.encoding}" source="${javac.version}" target="${javac.version}" debug="true" verbose="false" optimize="true" deprecation="false"> </javac> <copy todir="${compileDest}"> <fileset dir="${compileSrc}" excludes="**/*.svn,**/*.java" /> </copy> <echo>compiled classes copied to ${compileDest}</echo> <copy todir="${target.root.path}"> <fileset dir="${webroot.path}" excludes="**/*.svn,**/*.java" /> </copy> <echo>copied to ${webroot.path} to ${compileDest}</echo> <echo>compile finished</echo> </target> <target name="testIfProfileSet"> <echo>ant param profile: ${profile}</echo> <condition property="isProfileSet"> <!-- <isset property="${profile}" /> --> <or> <equals arg1="${profile}" arg2="dev" /> <equals arg1="${profile}" arg2="test" /> </or> </condition> <antcall target="profileProvided"> </antcall> <antcall target="noProfile"> </antcall> </target> <target name="profileProvided" if="isProfileSet"> <copy todir="${target.root.classes}"> <fileset dir="${env.cfg}" /> </copy> <echo>copied config files ${env.cfg} to ${target.root.classes}</echo> </target> <target name="noProfile" if="isProfileSet"> <echo>ant param profile is none, use default config files</echo> </target> <target name="war" depends="compile"> <jar jarfile="${target.path}/${project.name}-${profile}${now}.war"> <fileset dir="${target.root.path}"> <include name="**/*" /> <exclude name="**/*.fla" /> <exclude name="**/*.mp3" /> <exclude name="**/*.as" /> <exclude name="**/*.bak" /> <exclude name="**/*.swd" /> <exclude name="**/*.db" /> </fileset> </jar> </target> <target name="deploy" depends="compile"> <delete dir="${deploy.dir}" /> <mkdir dir="${deploy.dir}" /> <copy todir="${deploy.dir}"> <fileset dir="${target.root.path}"> </fileset> </copy> <echo>deploy ${target.root.path} to ${deploy.dir}</echo> </target> </project>
全文完,如果本文对您有所帮助,请花 1 秒钟帮忙点击一下广告,谢谢。
作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/168
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/168
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
近期评论