第一次接触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启动程序。