ant配置build.xml 指定多个classpath 编译多个src目录

因为项目需求,需要自动编译,打包源文件。通过eclipse导出功能,不能实现自动 编译,打包。

即决定用ant来完成,(ant可以通过 批处理文件调用)

因为项目架构比较特殊,有path1/src,path2/src,path3/src 多个同级源文件目录。

而且需要多个classpath目录,存放着需要用到的jar包。

在网上搜索,多是简单的ant配置,而后几经折磨,得到如下配置。

可以成功完成需求功能。

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="GBK" ?>  
  2. <!-- ===================================== -->  
  3. <!-- 张楠 2010/01/12 -->  
  4. <!-- ===================================== -->  
  5.   
  6. <!--default="clean"定义ant运行到target  clean这一步结束-->  
  7. <project name="projectName" default="clean" basedir="D:/work/projectName">  
  8.     <description>projectName系统发布</description>  
  9.     <!--属性设置-->  
  10.     <property environment="env" />  
  11.     <property name="src.dir" value="${basedir}/src" />  
  12.     <property name="jar.file" value="projectName.jar" />  
  13.     <property name="java.lib.dir" value="${env.JAVA_HOME}/lib" />  
  14.     <property name="build.dir" value="${basedir}/build" />  
  15.     <property name="classes.dir" value="${build.dir}/classes" />  
  16.     <property name="dist.dir" value="D:/contrib" />  
  17.           
  18.     <!-- 基本编译路径设置 定义多个classpath-->  
  19.     <path id="compile.classpath">  
  20.         <fileset dir="${java.lib.dir}">  
  21.             <include name="tools.jar" />  
  22.         </fileset>  
  23.         <fileset dir="D:/contrib">  
  24.             <include name="*.jar" />  
  25.         </fileset>  
  26.     </path>  
  27.       
  28.     <!-- 运行路径设置 -->  
  29.     <!--path id="run.classpath">  
  30.         <path refid="compile.classpath" />  
  31.         <pathelement location="${classes.dir}" />  
  32.     </path-->  
  33.       
  34.     <!-- 排除java源文件的模式集 -->  
  35.     <patternset id="no.java">  
  36.         <exclude name="**/*.java" />  
  37.     </patternset>  
  38.       
  39.     <!-- 初始化,建立目录,将多个src目录复制到同一src目录,编译,打包完成后自动清除 -->  
  40.     <target name="init" description="初始化,建立目录,复制文件">  
  41.         <mkdir dir="${classes.dir}" />  
  42.         <mkdir dir="${dist.dir}" />  
  43.         <mkdir dir="${src.dir}" />  
  44.         <copy todir="${src.dir}">  
  45.                  <fileset dir="${basedir}/path1/src">  
  46.                 <include name="**/*.java" />  
  47.              </fileset>  
  48.         </copy>  
  49.         <copy todir="${src.dir}">  
  50.              <fileset dir="${basedir}/path2/src">  
  51.               <include name="**/*.java" />  
  52.            </fileset>  
  53.         </copy>  
  54.         <copy todir="${src.dir}">  
  55.              <fileset dir="${basedir}/path3/src">  
  56.               <include name="**/*.java" />  
  57.            </fileset>  
  58.         </copy>  
  59.         <copy todir="${src.dir}">  
  60.              <fileset dir="${basedir}/path4/src">  
  61.               <include name="**/*.java" />  
  62.           </fileset>  
  63.         </copy>  
  64.         <copy todir="${classes.dir}">  
  65.             <fileset dir="${src.dir}">  
  66.                 <patternset refid="no.java" />  
  67.             </fileset>  
  68.         </copy>  
  69.     </target>  
  70. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  71. 长期推荐成都知名外企(英语好 C++ JAVA)  
  72. mail to:[email protected]  
  73. [url]http://woshizn.iteye.com/blog/1195498[/url]  
  74. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  75.     <!-- 编译源文件-->  
  76.     <target name="compile" depends="init" description="编译源文件">  
  77.         <javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.5" target="1.5">  
  78.             <classpath refid="compile.classpath" />  
  79.         </javac>  
  80.     </target>  
  81.       
  82.     <!-- 打包类文件 -->  
  83.     <target name="jar" depends="compile" description="打包类文件">  
  84.         <jar jarfile="${dist.dir}/${jar.file}" >  
  85.             <fileset dir="${classes.dir}" includes="**/*.*" />  
  86.         </jar>  
  87.     </target>  
  88.       
  89.     <!-- 清理,删除临时目录 -->  
  90.     <target name="clean" depends="jar" description="清理,删除临时目录">  
  91.         <delete dir="${build.dir}" />  
  92.         <delete dir="${basedir}/.settings" />  
  93.         <delete dir="${src.dir}" />  
  94.         <delete dir="${basedir}/bin" />  
  95.         <echo level="info">清理完毕</echo>  
  96.     </target>  
  97.       
  98.     <!-- 从打包后jar的文件里运行 -->  
  99.     <!--target name="runjar" depends="jar" description="运行jar">  
  100.         <java jar="${dist.dir}/${jar.file}" fork="yes" dir="${basedir}" />  
  101.     </target-->  
  102.       
  103.     <!-- 运行 -->  
  104.     <!--target name="run" depends="compile" description="运行">  
  105.         <java classname="powerwind.Sample" fork="yes" dir="${basedir}">  
  106.             <classpath refid="run.classpath" />  
  107.             <arg line="${param.msg}" />  
  108.         </java>  
  109.     </target-->  
  110. </project>  
  111.   
  112.    

你可能感兴趣的:(classpath)