`

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

    博客分类:
  • JAVA
 
阅读更多

因为项目需求,需要自动编译,打包源文件。通过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:hot13399@163.com  
  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.    
分享到:
评论

相关推荐

    ant的build.xml模板

    `build.xml`是Ant的构建配置文件,它是Ant执行任务的蓝图,定义了一系列的构建目标和任务。文件的结构通常包括项目声明、任务定义、属性设置、目标定义以及依赖关系等部分。下面我们将逐一剖析这些关键元素。 1. **...

    ANT-build.xml命令详解

    Apache Ant 是一个Java平台上的开源构建工具,它通过XML格式的配置文件(如`build.xml`)来定义构建任务。Ant的设计理念是“简单就是美”,它使得Java项目的构建过程变得可配置且易于理解。本文将深入解析`build.xml...

    ant build.xml 使用实例

    4. **自定义构建目标**:`build.xml`可以定义多个目标,通过在命令行指定目标名来选择执行哪个目标,如`ant compile`或`ant package`。每个目标可以依赖其他目标,形成构建链。 5. **属性与属性文件**:Ant支持使用...

    ant编译java web的build.xml文件

    Apache Ant是Java领域广泛应用的一个开源构建工具,其核心在于一个名为`build.xml`的配置文件。本文将深入探讨`build.xml`文件的结构和功能,以及如何利用它来编译Java Web应用。 1. **Ant基础** Apache Ant是一种...

    ant build.xml编写

    Apache Ant是Java领域广泛应用的一个构建工具,其核心在于一个名为`build.xml`的配置文件。本文将深入探讨`build.xml`的编写及其在项目构建中的应用。 `build.xml`是Ant的工作剧本,它定义了一系列的构建任务和目标...

    ant的配置文件build.xml

    在Ant的世界中,`build.xml`是核心配置文件,它包含了项目构建的所有指令和任务。这篇内容将深入解析`build.xml`文件的结构、元素以及如何使用它来管理Java项目的构建过程。 一、`build.xml`文件结构 `build.xml`...

    ANT-build.xml文件详解.doc

    Ant 是一个广泛应用于Java项目的自动化构建工具,它的核心在于一个名为`build.xml`的XML文件,此文件定义了构建过程中的各种任务和目标,使得项目构建过程规范化、自动化。本文将深入解析`build.xml`文件的结构、...

    ant build.xml例子

    Ant是Apache组织提供的一款Java语言的构建工具,它的配置文件通常以`build.xml`为名,它是Ant工作的蓝图。这篇博客文章“ant build.xml例子”可能详细介绍了如何使用Ant来管理Java项目的构建过程。 `build.xml`文件...

    项目build.xml文件

    本文将深入探讨“项目build.xml文件”,这是一个与Ant构建工具密切相关的文件,用于规范Java项目的构建过程。 Ant是Apache软件基金会的一个开源项目,它是一个基于Java的构建工具,类似于Unix下的Make工具,但更为...

    Ant项目所需要用到的jar以及build.xml

    Apache Ant是一个广泛使用的Java构建工具,它通过XML配置文件(如`build.xml`)来定义构建过程,包括编译、打包、测试、部署等任务。这个压缩包`apache-ant-1.8.4-bin.zip`包含了Ant的二进制版本,用户可以直接解压...

    ant打jar包时, 怎么把所依赖的jar包与从源码中编译过来class文件合并成最终的一个jar?

    Ant是一个流行的Java构建工具,它允许我们通过配置XML文件(build.xml)来执行自动化构建任务,包括jar文件的创建和合并。下面我们将详细讨论如何使用Ant实现这个目标。 首先,确保你已经安装了Ant,并且在项目中...

    Eclipse中Ant的配置与测试 build.xml

    本文将详细介绍如何在Eclipse环境中配置和测试Ant,以及如何通过`build.xml`文件来管理这些任务。 #### 二、Ant简介 Apache Ant是一款开源的Java项目构建工具,它使用XML格式的脚本来定义项目的构建过程。Ant脚本...

    Ant的最完整的build.xml解释

    ### Ant的最完整的build.xml解释 #### 一、Ant简介及背景 Ant 是一款非常实用且功能强大的构建工具,主要用于Java项目的编译、测试、部署等自动化任务处理。相较于传统的Make命令工具,Ant的设计更加现代化,它...

    ant-installer.jar.zip

    Ant作为一个强大的构建工具,通过XML配置文件实现自动化构建流程,包括编译、测试、打包等,同时支持依赖管理和远程资源下载。熟练掌握Ant的使用,将极大提升开发者的工作效率,确保项目的构建过程高效且稳定。

    ant-dependencies.jar.zip

    Ant基于XML,定义了一系列的构建任务,如编译、打包、测试等,通过XML格式的构建文件(build.xml)来驱动整个项目构建。它最初是作为Java项目构建的替代方案,相对于Makefile提供了更易于跨平台的解决方案。 二、...

    Ant 编译 多目录demo

    总结,Ant编译多目录的项目,主要通过`build.xml`文件配置多个`fileset`来指定源码位置,然后使用`&lt;javac&gt;`任务进行编译。理解并熟练掌握Ant的配置方式,能帮助开发者高效地管理复杂的项目构建过程。

    ant-launcher.jar.zip

    Ant的核心功能包括编译源代码、打包、运行测试、部署应用等,它通过任务(Tasks)实现这些操作,每个任务都是一个特定构建步骤的实现。 Ant-Launcher.jar是Ant的一部分,它是Ant的启动器,负责执行Ant的主类`org....

    org.apache.ant_1.7.1.v20100518-1145.zip

    Apache Ant的核心概念是构建文件(build.xml),这是一个XML文档,定义了构建过程中所需的任务和目标。这些任务包括编译源代码、创建JAR文件、运行测试、打包应用等。在Ant中,每个任务都是通过一个称为任务(task)的...

    ant编译以及格式

    1. **配置build.xml**:首先,你需要创建或编辑一个名为build.xml的文件,这是Ant的工作说明书。在这个文件中,你会定义目标(target),每个目标代表一个具体的构建任务。 2. **定义属性(Properties)**:在build...

Global site tag (gtag.js) - Google Analytics