第一次接触ant是15年在无锡某软件公司实习时,当时的项目是由多个模块组成,开发分成模块开发的几个小组。为了提高开发效率,采用这种编译项目的方法。
最近接触到flex项目,采用eclipse自动编译的方法,开发效率极低。于是着手写自己的第一个bulid.xml文件。
(前提,jdk已配置好,此处不再赘述)
入门:下载并配置ant.
下载完成后直接解压到指定目录就ok了,然后配置环境变量。
PATH:C:\Program Files\Apache Software Foundation\apache-ant-1.9.7\bin;
ANT_HOME:C:\Program Files\Apache Software Foundation\apache-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}\nczsc"/> <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}\src\util" 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}\src\vo" 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}\src\common" 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}\src\com" 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}\src\config"> </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}\src\export" destdir="${user.dir}\${classes}"> <compilerarg line="-Xlint:unchecked" /> <compilerarg line="-encoding UTF-8"/> </javac> <mkdir dir="${user.dir}\${classes}\nczsc"/> <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\nczsc" 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\nczsc"> <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 \u533A\u57DF\u75BE\u63A7\\095 \u8111\u5352\u4E2D\u7B5B\u67E5\u7CFB\u7EDF\\05 \u6E90\u4EE3\u7801\\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启动程序。