`

用ant进行工程管理

阅读更多

1.典型地,一个ant工程脚本如下:

  1. <?xml version="1.0"?>  
  2. <project name="springapp" basedir="." default="usage">  
  3.     <property file="build.properties" />  
  4.     <path id="master-classpath">  
  5.     <target name="usage">  
  6.     <target name="build" description="Compile main source tree java files">  
  7.     <target name="deploy" depends="build" description="Deploy application">  
  8.     <target name="deploywar" depends="build" description="Deploy application as a WAR file">  
  9.     <target name="clean" description="Clean output directories">  
  10.     <target name="undeploy" description="Un-Deploy application">  
  11. </project>  

其中的property属性可以理解为ant在运行期间所要用到的常量,它是ant的基本数据类型,代表了一个String常量,该常量可以采用直接定义的方式,也可以采用将属性配置到一个properties文件中,在上面的这个例子中,我们同时使用了两种方式定义ant运行时的property属性。在ant脚本中如果要使用外部的配置属性就必须指明文件的确切位置及文件名称。如下所示:

xml 代码
  1. <property file="build.properties" />  

其中build.properties 的文件内容如下:

properties 代码
  1. # Ant properties for building the springapp   
  2. appserver.home=D:\\tomcat6   
  3. deploy.path=${appserver.home}/deploy   
  4. tomcat.manager.url=http://localhost:8080/manager   
  5. tomcat.manager.username=admin   
  6. tomcat.manager.password=tomcat  

 
2.path属性为ant在编译整个工程的过程中提供所需的第三方资源包,ant除了拥有基本数据类型外,还提供了一些高级结构以包括一系列的String,其主要有:path/pathelement、fileset以及dirset  由于我们在前面已经定义过了web.dir常量,因此,在这里我们可以直接把他的值拿来使用(同理:build.dir),根据我们的常量设置,${web.dir}/WEB-INF/lib路经的值在ant运行期间会被转换为war/WEB-INF/lib:

xml 代码
  1. <path id="master-classpath">  
  2.    <fileset dir="${web.dir}/WEB-INF/lib">  
  3.        <include name="*.jar" />  
  4.    </fileset>  
  5.    <pathelement path="${build.dir}" />  
  6. </path>  

 
 
 
 
3.接下来就是N多个 target 属性,ant支持定义一个默认target和多个可选target 属性,下面的代码说明了默认使用name为 usage 的 target 属性。

xml 代码
  1. <project name="springapp" basedir="." default="usage">  

 
查看该节点信息,可以看出,在该 target 节点下仅仅定义了一系列的 echo message 信息。我们在这里定义的这些信息仅仅用于提示一些ant当前可用操作(build、deploy、deploywar、clean、undeploy)。

xml 代码
  1. <target name="usage">  
  2.    <echo message="" />  
  3.    <echo message="${appserver.home}      --->the server root (Danlley Wei)" />  
  4.    <echo message="${name} build file" />  
  5.    <echo message="-----------------------------------" />  
  6.    <echo message="" />  
  7.    <echo message="Available targets are:" />  
  8.    <echo message="" />  
  9.    <echo message="build     --> Build the application" />  
  10.    <echo message="deploy    --> Deploy application as directory" />  
  11.    <echo message="deploywar --> Deploy application as a WAR file" />  
  12.    <echo message="clean     --> clean the generated file which is like *.class " />  
  13.    <echo message="undeploy  --> clean all files in web server tomcat" />  
  14.    <echo message="" />  
  15. </target>  


 
4.name为 build 的 target 节点:

xml 代码
  1. <target name="build" description="Compile main source tree java files">  
  2.    <mkdir dir="${build.dir}" />  
  3.    <javac destdir="${build.dir}" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true">  
  4.        <src path="${src.dir}" />  
  5.        <classpath refid="master-classpath" />  
  6.    </javac>  
  7. </target>  

 
 
从该节点定义的信息可以看出,ant把整个工程的编译过程分为两步,首先创建编译路经,这里你根本不需要担心该路经是否已经存在,因为如果不存在,ant就会自动创建该工程编译路经

xml 代码
  1. <mkdir dir="${build.dir}" />  

 
 
接下来对工程进行编译,其编译后的文件将存放在destdir="${build.dir}" 下 ,注意这里的target="1.5"  这里指明了使用JDK1.5,当然你还可以使用其它的版本。

xml 代码
  1. <javac destdir="${build.dir}" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true">  
  2.     <src path="${src.dir}" />  
  3.     <classpath refid="master-classpath" />  
  4. </javac>  

 
5.name为 deploy 的 target 节点,其实就是一个工程的拷贝过程,ant在发现 ${name} 路经不存在后会自动创建该目录,因此你没必要去手动创建一个${name} 目录 :

xml 代码
  1. <target name="deploy" depends="build" description="Deploy application">  
  2.    <copy todir="${deploy.path}/${name}" preservelastmodified="true">  
  3.        <fileset dir="${web.dir}">  
  4.           <include name="**/*.*" />  
  5.        </fileset>  
  6.    </copy>  
  7. </target>  

 
6.name为 deploywar 的 target 节点:

xml 代码
  1. <target name="deploywar" depends="build" description="Deploy application as a WAR file">  
  2.    <war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml">  
  3.        <fileset dir="${web.dir}">  
  4.           <include name="**/*.*" />  
  5.        </fileset>  
  6.    </war>  
  7.    <copy todir="${deploy.path}" preservelastmodified="true">  
  8.        <fileset dir=".">  
  9.           <include name="*.war" />  
  10.        </fileset>  
  11.    </copy>  
  12. </target>  


 
7.name为 clean 的 target 节点:

xml 代码
  1. <target name="clean" description="Clean output directories">  
  2.     <delete>  
  3.         <fileset dir="${build.dir}">  
  4.             <include name="**/*.class"/>  
  5.         </fileset>  
  6.     </delete>  
  7. </target>  


 
8.name为 undeploy 的 target 节点:

xml 代码
  1. <target name="undeploy" description="Un-Deploy application">  
  2.     <delete>  
  3.         <fileset dir="${deploy.path}/${name}">  
  4.             <include name="**/*.*"/>  
  5.         </fileset>  
  6.     </delete>  
  7. </target>  


 

xml 代码
分享到:
评论

相关推荐

    ant 工程

    "Ant工程"是一个基于Java的构建工具,它在软件开发过程中扮演着自动化构建、测试和部署的角色。由Apache软件基金会维护,Ant以其灵活性和可扩展性而受到广泛的欢迎,尤其在Java开发领域。它通过XML格式的构建文件...

    ant学习测试工程源码

    【标题】"ant学习测试工程源码"是一个Java开发的学习项目,主要目的是教授如何使用Apache Ant作为构建工具来管理基于Spring、Hibernate和JUnit的软件工程。Ant是一个流行的开源构建工具,它允许开发者通过XML配置...

    AntTest演示工程,演示如何使用Ant编译Android工程

    总结来说,"AntTest演示工程"是一个实用的教学案例,它通过实际的项目展示了如何使用Ant工具来管理Android应用程序的构建过程。通过学习和实践这个工程,开发者可以深入理解Ant在Android开发中的应用,提升自己的...

    ant打包Web工程

    本篇将重点讲解如何使用Ant打包Web工程,以及涉及到的相关知识点。 首先,我们要理解Ant的核心概念。Ant是一个基于XML的构建工具,它的主要任务定义在名为`build.xml`的文件中。这个文件包含了构建过程的所有步骤,...

    ant ant ant ant

    "Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...

    Ant 打包工程

    本文将深入探讨Ant在打包工程中的应用。 ### Ant简介 Ant是由Apache软件基金会开发的开源项目,它是一个基于Java的构建工具,其设计灵感来源于Unix的Make工具。Ant使用XML来描述构建过程,使得构建脚本具有良好的...

    ant编译java工程

    标题 "ant编译java工程" 涉及到的是使用Apache Ant工具来构建Java应用程序的过程。Apache Ant是一个基于XML的构建工具,它允许开发者通过声明式的方式定义项目构建任务,而不是采用程序化的方式。在Java开发中,Ant...

    ant自动发布工程

    通过熟练掌握这些Ant的使用技巧,开发者可以构建出高效、可靠的自动发布流程,使得Java工程的发布变得更加便捷和规范。对于大型项目而言,这种自动化发布策略显得尤为重要,因为它不仅可以节省时间,还能降低人为...

    Ant+Svn打包Web工程

    通过上述步骤,我们可以理解如何结合Ant和Svn来管理和构建Web工程。这种方式使得开发者能够有效地协同工作,同时也简化了代码维护和版本控制。在实际项目中,可能还需要考虑其他因素,如集成测试、代码质量检查等,...

    ruoyi-cloud前端工程,使用ant design vue框架

    Ruoyi-Cloud是一款基于Ant Design Vue框架的前端工程,主要应用于web应用开发,特别是后台管理系统的设计和构建。Ant Design Vue是阿里巴巴推出的一款Vue.js组件库,它将Ant Design的设计理念与Vue.js的轻量、易用性...

    ant将工程打war

    在描述的“简单的案例用ant将工程打war”中,我们首先要创建`build.xml`文件,并设置基本的项目配置。这通常包括项目的源代码目录、输出目录、类路径等信息。例如: ```xml ${build.dir}/classes"/&gt; ${build...

    ant ibatis 软件工程思想

    《Ant与iBatis在软件工程中的应用与思想》 在现代软件开发中,Ant与iBatis作为两款重要的工具,对于实现高效、灵活的软件工程有着不可忽视的作用。Ant是一个Java构建工具,而iBatis则是一个持久层框架,两者结合...

    apache ant使用例子

    在"apache ant使用例子"中,我们可以通过一个名为"HelloAnt"的MyEclipse工程实例来学习如何使用Ant。MyEclipse是Eclipse IDE的一个扩展,特别适合于Java EE项目的开发,它内置了对Ant的支持,使得我们可以方便地在...

    使用Ant将java工程打包成bat可执行性文件

    本文将深入探讨如何使用Ant将Java工程打包成bat可执行文件,并结合提供的`antBatTest`压缩包中的示例进行说明。 首先,我们需要了解Ant的基本概念。Ant是一个基于XML的构建工具,它的主要任务是编译、测试、打包和...

    Ant实例 web工程部署

    【Ant实例 web工程部署】与【Ant】标签相关的知识点: Ant是一个开源的Java构建工具,它简化了构建和部署Java应用程序的过程。在Ant出现之前,Java应用的构建通常依赖于平台特定的脚本、Makefile、多种IDE以及手动...

    基于springboot,ant-design-vue-pro的简易后台管理系统+源代码+文档说明

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    使用Flex Ant Tasks编译工程文件

    总的来说,`使用Flex Ant Tasks编译工程文件`这个主题涵盖了源码管理和自动化构建两个重要方面。通过熟练掌握Ant和Flex Ant Tasks,开发者可以高效地管理Flex项目,提高开发效率,并确保代码的一致性和质量。同时,...

    使用ant部署eclipse开发的web工程到tomcat

    本篇文章将深入探讨如何使用Apache Ant工具部署由Eclipse开发的Web工程到Apache Tomcat服务器上。Ant是一个基于Java的构建工具,它允许通过XML格式的构建文件(如`build.xml`)来定义构建任务,极大地简化了项目管理...

Global site tag (gtag.js) - Google Analytics