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.   
  4.   
  5.   
  6.   
  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.       
  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.       
  30.     <patternset id="no.java">  
  31.         <exclude name="**/*.java" />  
  32.     patternset>  
  33.       
  34.       
  35.     <target name="init" description="初始化,建立目录,复制文件">  
  36.         <mkdir dir="${classes.dir}" />  
  37.         <mkdir dir="${dist.dir}" />  
  38.         <mkdir dir="${src.dir}" />  
  39.         <copy todir="${src.dir}">  
  40.                  <fileset dir="${basedir}/path1/src">  
  41.                 <include name="**/*.java" />  
  42.              fileset>  
  43.         copy>  
  44.         <copy todir="${src.dir}">  
  45.              <fileset dir="${basedir}/path2/src">  
  46.               <include name="**/*.java" />  
  47.            fileset>  
  48.         copy>  
  49.         <copy todir="${src.dir}">  
  50.              <fileset dir="${basedir}/path3/src">  
  51.               <include name="**/*.java" />  
  52.            fileset>  
  53.         copy>  
  54.         <copy todir="${src.dir}">  
  55.              <fileset dir="${basedir}/path4/src">  
  56.               <include name="**/*.java" />  
  57.           fileset>  
  58.         copy>  
  59.         <copy todir="${classes.dir}">  
  60.             <fileset dir="${src.dir}">  
  61.                 <patternset refid="no.java" />  
  62.             fileset>  
  63.         copy>  
  64.     target>  
  65. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  66. 长期推荐成都知名外企(英语好 C++ JAVA)  
  67. mail to:[email protected]  
  68. [url]http://woshizn.iteye.com/blog/1195498[/url]  
  69. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  70.       
  71.     <target name="compile" depends="init" description="编译源文件">  
  72.         <javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.5" target="1.5">  
  73.             <classpath refid="compile.classpath" />  
  74.         javac>  
  75.     target>  
  76.       
  77.       
  78.     <target name="jar" depends="compile" description="打包类文件">  
  79.         <jar jarfile="${dist.dir}/${jar.file}" >  
  80.             <fileset dir="${classes.dir}" includes="**/*.*" />  
  81.         jar>  
  82.     target>  
  83.       
  84.       
  85.     <target name="clean" depends="jar" description="清理,删除临时目录">  
  86.         <delete dir="${build.dir}" />  
  87.         <delete dir="${basedir}/.settings" />  
  88.         <delete dir="${src.dir}" />  
  89.         <delete dir="${basedir}/bin" />  
  90.         <echo level="info">清理完毕echo>  
  91.     target>  
  92.       
  93.       
  94.       
  95.     

你可能感兴趣的:(JAVA)