现在的位置: 首页 > 综合 > 正文

ant 中配置和使用classpath

2014年07月16日 ⁄ 综合 ⁄ 共 3018字 ⁄ 字号 评论关闭

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>

抱歉!评论已关闭.