于是一样,要为类装载器设置类路径和为控制台的命令符设置path了。打开ant的目录一看,很简单,就是一个lib和一个bin,这样设置classpath和path就不在话下了。
设置好了,就到控制台上敲ant就ok了,bin下面有这个批处理文件,敲进去一般会提示找不到build.xml文件,正常。如果说什么不是内部命令等,那么就是path的设置问题了。
用ant,也就是要写一个build.xml文件了,其他的就都没有了,很简单实用吧。当然,文件名可以是指定的,只要在ant命令后加上文件名就是了,build.xml是默认的而已。当然这个文件要让控制台找到,所以敲ant一定要到当前目录下,否则控制台找不到你的文件了。
那么这个xml文件到底是什么呢?也很简单一般的几十行就搞定了,而且可以复用,就是很多的项目基本上可以使用一份xml文件,只要稍微的注意里面的目录问题就ok了。
既然使用,那就先看一个示例吧。
<project name="CarRent" basedir="." default="compile">
<property name="user.name" value="wewu200"/>
<property name="dist.name" value="CarRent"/>
<property name="srcDir" location="WEB-INF/src"/>
<property name="buildDir" location="WEB-INF/classes"/>
<property name="distDir" location="D:/Program Files/Apache Software Foundation/Tomcat5.5/webapps/dist"/>
<!-- Build working classpath -->
<path id="project.class.path">
<pathelement path ="WEB-INF/classes"/>
<pathelement path ="${classpath}"/>
</path>
<target name="init">
<tstamp/>
<!-- Create the build directory structure used by compile -->
<delete dir="${distDir}"/>
<delete dir="${buildDir}"/>
<mkdir dir="${buildDir}"/>
<mkdir dir="${distDir}"/>
</target>
<!-- Compile the dir src .java to .class to dir build -->
<target name="compile" depends="init">
<javac srcdir="${srcDir}" destdir="${buildDir}">
<classpath refid="project.class.path"/>
</javac>
</target>
<!-- Jar src and Jar build-->
<target name="jar" depends="compile">
<jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="package.Main"/><!-- define your Jar's main class if it exists-->
</manifest>
</jar>
<jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
</target>
<target name="run" depends="compile">
<java classname="test.Test" fork="true" failοnerrοr="true">
<arg value="-jar"/>
<classpath refid="project.class.path"/>
</java>
</target>
<!-- Build binary distribution -->
<target name="war" depends="jar" description="Create binary distribution">
<war destfile="${distDir}/${dist.name}.war" webxml="WEB-INF/web.xml">
<lib dir="WEB-INF/lib"/>
<classes dir="WEB-INF/classes"/>
<fileset dir="${basedir}"/>
</war>
</target>
</project>