第一次接触ant是15年在无锡某软件公司实习时,当时的项目是由多个模块组成,开发分成模块开发的几个小组。为了提高开发效率,采用这种编译项目的方法。
最近接触到flex项目,采用eclipse自动编译的方法,开发效率极低。于是着手写自己的第一个bulid.xml文件。
(前提,jdk已配置好,此处不再赘述)
入门:下载并配置ant.
下载完成后直接解压到指定目录就ok了,然后配置环境变量。
PATH:C:Program FilesApache Software Foundationapache-ant-1.9.7in;
ANT_HOME:C:Program FilesApache Software Foundationapache-ant-1.9.7
配置完成后:cmd 输入ant -version
编译java项目:
首先在项目中新建build.xml 和build.properties(用于属性的设置)文件
build.xml:
build文件主要由两部分组成:project和target,target之间可以有依赖关系,一般web项目,首先清除已经生成的class文件,然后再编译,最后copy到tomcat.
<?xml version="1.0" encoding="UTF-8"?> <project name="nczsc" default="build.proj" basedir="." > <property file="build.properties"/> <target name="info"> <echo message="******************PROJECT:${project}******************"/> <echo message="******************AUTHOR:${author}******************"/> </target> <target name="clean" depends="info"> <echo message="CLEAN PROJECT..."/> <delete dir="${user.dir}${classes}common"/> <delete dir="${user.dir}${classes}util"/> <delete dir="${user.dir}${classes}config"/> <delete dir="${user.dir}${classes}export"/> <delete dir="${user.dir}${classes}vo"/> <delete dir="${user.dir}${classes}com"/> <delete dir="${user.dir}${classes} czsc"/> <delete file="${user.dir}${classes}log4j.properties"/> </target> <target name="bulid.common" depends="clean"> <echo message="COMPILE COMMON CLASS..."/> <mkdir dir="${user.dir}${classes}util"/> <javac includeantruntime="false" nowarn="on" source="1.6" target="1.6" deprecation="true" debug="true" encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srcutil" destdir="${user.dir}${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> <mkdir dir="${user.dir}${classes}vo"/> <javac includeantruntime="false" nowarn="on" source="1.6" target="1.6" deprecation="true" debug="true" encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srcvo" destdir="${user.dir}${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> <mkdir dir="${user.dir}${classes}common"/> <javac includeantruntime="false" nowarn="on" source="1.6" target="1.6" deprecation="true" debug="true" encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srccommon" destdir="${user.dir}${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> </target> <target name="build.proj" depends="bulid.common"> <echo message="COMPILE PROJECT..."/> <mkdir dir="${user.dir}${classes}com"/> <javac includeantruntime="false" nowarn="on" source="1.6" target="1.6" deprecation="true" debug="true" encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srccom" destdir="${user.dir}${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> <mkdir dir="${user.dir}${classes}config"/> <copy todir="${user.dir}${classes}config"> <fileset dir="${user.dir}srcconfig"> </fileset> </copy> <mkdir dir="${user.dir}${classes}export"/> <javac includeantruntime="false" nowarn="on" source="1.6" target="1.6" deprecation="true" debug="true" encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srcexport" destdir="${user.dir}${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> <mkdir dir="${user.dir}${classes} czsc"/> <javac includeantruntime="false" nowarn="on" source="1.6" target="1.6" deprecation="true" debug="true" encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}src czsc" destdir="${user.dir}${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> </target> <target name="copy.tomcat" depends="build.proj"> <echo message="COPY FILE TO TOMCAT..."/> <copy todir="${tomcat.dir}webapps czsc"> <fileset dir="${user.dir}WebRoot"> </fileset> </copy> </target> <path id="project.classpath"> <fileset dir="${project.dir}${lib.dir}"> <include name="***.jar" /> </fileset> <fileset dir="${tomcat.dir}/lib"> <include name="*.jar" /> </fileset> <fileset dir="${ant.dir}"> <include name="***.jar" /> </fileset> </path> </project>
build.propertes文件中主要用来设置在build文件中引用的变量,以便重复利用。
author=yookoo
project=nczsc
project.dir=D:\vs\050 u533Au57DFu75BEu63A7\095 u8111u5352u4E2Du7B5Bu67E5u7CFBu7EDF\05 u6E90u4EE3u7801\01nczsc
classes=WebRoot\WEB-INF\classes
lib.dir=WebRoot\WEB-INF\lib
tomcat.dir=C:\Program Files\Apache Software Foundation\Tomcat 6.0
ant.dir=C:\Program Files\Apache Software Foundation\apache-ant-1.9.7
最后,将build文件加入ant中。
然后点击双击ant中的build.proj启动程序。