ant手册中的ant配置classpath采用classpath标签,可是我发现这样配置总是不好用,还是直接用path可以使用
设置classpath的方法有多种
<path id="project.classpath">
1<pathelement path="${basedir}/lib/aa.jar"/>
2<pathelement location="aa.jar"/>与1的区别在于location可以去当前路径,当然可以使用绝对路径
3<filelist id="file" dir="${basedir}/lin">
<file name="a.jar"/>
<file name="d:lib/b.jar"/>
</filelist>
4<fileset dir="d:/lib">
<include name="**/*.jar"/>
</fileset>
5手册上说了dirset也好用,但是我测试了还是不要用的
</path>
下面说classpath的使用
样例如下
<javac scdir="./src" destdir="./classes">
<classpath refid="project.classpath"/>
</javac>
下面是比较四种方式的优缺点
第一种调用的需要设置绝对路径适合第三方jar包
第二种则适合jar包和build.xml文件在同一目录下的情况,但是我觉得两个文件放在一起本身就不合理,估计是用的情况不多。
前两个都是设置单个jar包
第三种是一个文件集合适合引入不同路径的jar包,但是需要输入每个jar包的名字,比较繁琐,适合于jar包属于不同位置,比较分散但是不多的情况
第四种是一个文件夹,可以采用匹配模式来引入,这个适合在同一个文件夹下,文件名字比较多的情况下
======================================一个例子==================================
<?xml version="1.0" encoding="UTF-8"?>
<project name="BackServer" default="deploy" basedir=".">
<!--存放打好的包的路径-->
<property name="build" value="${basedir}/build" />
<!--存放class文件-->
<property name="build.class" value="${build}/classes" />
<!--java源文件路径-->
<property name="src" value="${basedir}/src" />
<!--conf 目录 -->
<property name="conf" value="${basedir}/conf"></property>
<!-- log 目录 -->
<property name="log" value="${basedir}/log"></property>
<!--queue 目录 -->
<property name="queuee" value="${basedir}/queuee"></property>
<!--lib 目录 -->
<property name="lib" value="${basedir}/lib" />
<!-- 生成的jar的名称-->
<property name="build.jar" value="backserver1.2.jar"></property>
<!--服务器的位置-->
<!-- <property name="webserver" value="C:\Program Files\Apache Software Foundation\Tomcat 5.5" /> -->
<!--jsp文件的存放目录,这个项目不是web项目-->
<!-- <property name="webRoot" value="${basedir}/WebRoot" /> -->
<!--web.xml文件的位置-->
<!-- <property name="webxml" value="${webRoot}/WEB-INF/web.xml" /> -->
<!--存放jar文件的位置-->
<target name="clean" description="删除路径">
<delete dir="${build}"/>
<delete dir="${log}"></delete>
</target>
<target name="prepare" description="创建路径" depends="clean">
<mkdir dir="${build.class}"/>
<mkdir dir="${build}/log"/>
</target>
<path id="classpath">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="compile" description="编译java原文件" depends="prepare">
<javac srcdir="${src}" destdir="${build.class}" encoding="GBK" source="1.6" target="1.6" failonerror="true" debug="true">
<classpath refid="classpath"/>
</javac>
</target>
<target name="jar1.2" description="生成jar包" depends="compile">
<jar destfile="${build}/${build.jar}" basedir="${build.class}" />
</target>
<target name="deploy" depends="jar1.2" description="拷贝jar到build目录下" >
<delete dir="${build.class}" />
<copy todir="${build}/conf">
<fileset dir="${conf}"></fileset>
</copy>
<copy todir="${build}/queuee">
<fileset dir="${queuee}"></fileset>
</copy>
<copy todir="${build}/lib">
<fileset dir="${lib}"></fileset>
</copy>
<copy todir="${build}">
<fileset dir="${build}">
<filename name="${build}/${build.jar}"/>
</fileset>
</copy>
</target>
</project>