最近自己开始带队进行项目的开发,碰到了ANT这个构建工具。之前开发的项目是使用maven来构建,对于ANT,只是听说过,没有使用过,实际上对于maven,也没有仔细的研究过。因为公司一直都是用myeclipse开发项目,至少在未来一段比较长的时间内都会是使用这个工具,因此一直觉得用myeclipse来做打包的事情就可以了,就算上一个项目是用maven,但实际上我还是使用myeclipse来打包的。
话说接触ANT也是机缘巧合,前段时间公司有些调整,我被分到了一个新的项目组,看了这个项目组之前的一些项目,发现都是使用ANT来构建了,为了延续这个项目组的传统,我也只好学习一下它了,没想到也阴差阳错有了一点提升。
如前面所说,我一直对构建这个工作没有放太多的心思。但接触ANT之后,发觉构建工具确实在一定程度上给我们的工作提供了帮助,尤其是能够脱离IDE,这个是我之前从没考虑过的。
总体来说,ANT比较简单易学,对着教程照写一遍就差不多了,遇到比较特殊的应用情况,查找一下手册也基本能解决。不过在与IDE结合时,还是碰到一些恼人的问题。比如不能自动给IDE添加jar包(这个有相应的插件可以解决,但暂时没有试用过)。
最后记录一下项目中的build.xml文件,以备后用。
<project name="${project}" default="compile" basedir="."> <property environment="env"/> <property file="build.properties"/> <target name="init"> <mkdir dir="${build}"/> <mkdir dir="${dist}"/> </target> <target name="compile" depends="init"> <javac target="1.5" srcdir="${src}" destdir="${build}" classpath="${c_jars}"/> <copy todir="${build}"> <fileset dir="${src}"> <exclude name="**/*.java"/> </fileset> </copy> </target> <target name="dist" depends="compile"> <jar destfile="${dist}/${package}" basedir="${build}"/> </target> <target name="zip" depends="dist"> <!--copy todir="${lib}" file="${dist}/${package}"/--> <zip destfile="${project}-${version}.zip"> <!-- basedir="${basedir}" includes="${z_bin}/**,${z_conf}/**,${z_lib}/**"--> <zipfileset dir="${dist}" includes="${package}" prefix="${project}/${z_lib}"/> <zipfileset dir="${lib}" prefix="${project}/${z_lib}"/> <zipfileset dir="${bin}" prefix="${project}/${z_bin}"/> <zipfileset dir="${conf}" prefix="${project}/${z_conf}"/> <zipfileset dir="${log}" prefix="${project}/${z_log}"/> </zip> <delete file="${dist}/${package}"/> </target> <target name="clean" depends="init"> <delete dir="${build}"/> <delete dir="${dist}"/> </target> </project>
以及build.properties文件
project = ** version = 1 z_conf = conf z_lib = lib z_bin = bin z_log = log src = ${basedir}/src conf = ${basedir}/${z_conf} lib = ${basedir}/${z_lib} build = ${basedir}/build dist = ${basedir}/dist doc = ${basedir}/doc api = ${basedir}/api bin = ${basedir}/${z_bin} log = ${basedir}/${z_log} package = ** c_jars = ${lib}/log4j-1.2.13.jar