1.简介

  Ant 是一个 Apache 基金会下的跨平台的基于 Java 语言开发的构件工具。这是一个基于开放的操作系统构建和部署的工具,该工具需要从命令行执行。

2.特点

  • Ant 是基于 Java 语言开发的构建和部署工具。
  • Ant 具有平台无关性,可以处理平台特有的属性,诸如文件分隔符。
  • Ant 还可以用来执行平台特有的任务,比如使用 touch 命令修改一个文件的修改时间。
  • Ant 脚本是用 XML 来完成的。如果你已经对 XML 有所了解,那么你学习 Ant,将会比较得心应手。
  • Ant 擅长自动完成重复任务。
  • Ant 开始需要一系列的预先定义好的任务。
  • Ant 提供了开发自定义任务的接口。
  • Ant 可以很容易从命令行调用,并且它能够很好地集成免费和商用的集成开发环境。

3.安装

  安装 Ant 的前提是已经下载并且安装了 Java 开发工具包(JDK)。

  • 确保设置 JAVA_HOME 环境变量为你安装 Java 开发工具包的文件夹。
  • 从 http://ant.apache.org 下载库,如下:
  • 将文件解压到一个方便的地址,如 E:\ant 。可以使用 Winzip, winRAR, 7-zip 或者其他类似的工具进行解压缩操作。
  • 创建一个新的环境变量,命名为 ANT_HOME, 该环境变量指向 Ant 的安装文件夹,该文件夹为 E:\ant\apache-ant-1.9.6,如下:
  • 将 Apache Ant 的批处理文件的路径添加到 PATH 环境变量里。在这个例子中,该路径应为E:\ant\apache-ant-1.9.6\bin 文件夹,如下:

4.验证

  为了验证你的电脑上是否已经成功安装了 Apache Ant ,你可以在命令提示符中输入 ant。你应该会看到一个与下列相似的输出:

  

5.Ant构建文件

  一般来说,Ant 的构建文件默认为 build.xml,放在项目顶层目录中。然而,并没有限制构建文件必须命名为 bulid.xml,也并不限制放在项目顶层目录中。你可以将构建文件命名为其他名字,也可以将它放在项目的其他地方,代码如下:

 <?xml version="1.0"?>
<project name="hello world" default="info"> <!--<property name="sitename" value="www.tutorialspoint.com"/>-->
<property file="build.properties"/>
<target name="info">
<echo>Apache Ant version is ${ant.version} - You are at ${sitename}</echo>
</target> <fileset dir="${src}" casesensitive="yes">
<include name="**/*.java"/>
<exclude name="**/*stub"/>
</fileset>
</project>

  

  

  执行结果:

  

6.Ant属性

  

7.Ant属性文件

  当你只需要对小部分属性进行设置时,可以选择直接在构建文件中设置。然而,对于大项目,最好将设置属性的信息存储在一个独立的文件中。

存储属性信息在一个独立的文件中将会提供以下好处:

  • 它可以让您重复使用相同的构建文件,该文件在不同的执行环境中使用不同的属性设置。例如,构建属性文件在 DEV , TEST , 和 PROD 环境中可以独立地被维护。
  • 当你事先不知道属性的值时(例如,在一个实际的环境中),这样处理是有益的。这样允许你在知道属性值后,在其他环境中执行生成 (build) 操作。

这里没有硬性规定,但是一般情况下,属性文件都被命名为 build.properties, 并且与 build.xml 存放在同一目录层。

  

8.Ant数据类型

  

  

  

  

  

9.Ant编译项目

  假设构建的项目的结构:

  • 数据脚本存储在 db 文件夹中。
  • java 源文件存储在 src 文件夹中。
  • images (图像),js (JavaScript 脚本),style (css 层叠样式表)存储在 war 文件夹中。
  • JSPs 文件存储在 jsp 文件夹中。
  • 第三方的 jar 文件存储在 lib 文件夹中。
  • java 类文件存储在 WEB-INF\classes 文件夹中。

  代码如下:

<?xml version="1.0"?>
<project name="fax" basedir="." default="build">
  # 声明文件属性信息
  <property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
<property name="name" value="fax"/> <path id="master-classpath">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path> <target name="build" description="Compile source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.5" target="1.5">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
</javac>
</target> <target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
</project>

 打包:

    <target name="package">

        <jar jarfile="${basedir}/WZYC_EAR.ear">
<fileset dir="${basedir}/GZWZ/houtai/WZYC_EAR/EarContent/"> </fileset>
</jar> </target>

执行命令:ant -logfile error.log

  表示打包成功!

Ant使用及项目实践的更多相关文章

  1. React +Redux+ Ant Design + echarts 项目实践

    项目框架 采用React.js作为项目的框架 采用redux作为数据管理的框架 采用antd作为项目的UI组件 采用echarts完成项目中折线图的绘制 个人项目工作流程总结 拿到UI高保真图片之后先 ...

  2. 【项目实践】一文带你搞定Spring Security + JWT

    以项目驱动学习,以实践检验真知 前言 关于认证和授权,R之前已经写了两篇文章: [项目实践]在用安全框架前,我想先让你手撸一个登陆认证 [项目实践]一文带你搞定页面权限.按钮权限以及数据权限 在这两篇 ...

  3. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  4. Windows on Device 项目实践 3 - 火焰报警器制作

    在前两篇<Windows on Device 项目实践 1 - PWM调光灯制作>和<Windows on Device 项目实践 2 - 感光灯制作>中,我们学习了如何利用I ...

  5. Windows on Device 项目实践 2 - 感光灯制作

    在上一篇<Windows on Device 项目实践 1 - PWM调光灯制作>中,我们学习了如何利用Intel Galileo开发板和Windows on Device来设计并完成一个 ...

  6. Windows on Device 项目实践 1 - PWM调光灯制作

    在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演 ...

  7. Hangfire项目实践

    Hangfire项目实践分享 Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget ...

  8. MVC项目实践,在三层架构下实现SportsStore,从类图看三层架构

    在"MVC项目实践,在三层架构下实现SportsStore-02,DbSession层.BLL层"一文的评论中,博友浪花一朵朵建议用类图来理解本项目的三层架构.于是就有了本篇: I ...

  9. MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

随机推荐

  1. win10 + gluon + GPU

    1. 下载教程 可以用浏览器下载zip格式并解压,在解压目录文件资源管理器的地址栏输入cmd进入命令行模式. 也可以 git pull https://github.com/mli/gluon-tut ...

  2. vue moment库格式化处理后端传的日期

    开篇 日期时间格式前端和后端都可以处理,我比较推荐前端来处理(定制化高),下面我就介绍下两种处理的方式 后端处理 django默认不经处理传给前端的日期格式为2018-08-26T19:53:36.5 ...

  3. Rip配置

    Rip配置 首先建立如图拓扑图 分别配置两台电脑的ip地址和子网掩码和网关.如图所示. 在router0上配置两个端口的IP以及子网掩码 在路由器router0上配置rip2协议.里面的no auto ...

  4. hdu 6058---Kanade's sum(链表)

    题目链接 Problem Description Give you an array A[1..n]of length n. Let f(l,r,k) be the k-th largest elem ...

  5. .NET 构造DataTable返回多个json值

    有时候我们使用Ajax链接一般处理程序需要返回多个值,然而这些数据并非在一个查询表内,此时便想到构造一个虚拟的DataTable,这样就可以返回多个值了(当然有很多办法,这是其中一种 ). 首先我们需 ...

  6. 课程四(Convolutional Neural Networks),第二 周(Deep convolutional models: case studies) ——3.Programming assignments : Residual Networks

    Residual Networks Welcome to the second assignment of this week! You will learn how to build very de ...

  7. 当x,y和theta都是向量的时候如何计算损失

    function J = computeCost(X, y, theta) %COMPUTECOST Compute cost for linear regression % J = COMPUTEC ...

  8. Python:SQLMap源码精读—基于错误的盲注(error-based blind)

    目标网址 http://127.0.0.1/shentou/sqli-labs-master/Less-5/?id=1 Payload的生成 <test> <title>MyS ...

  9. C#单元测试分享ppt

    单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类, ...

  10. 如何将打包好的文件做成一个APP

    本文主要是用来简短的对做成一个APP进行说明,内容可能不是多详细,但会给出具体思路.(仅供参考) 因为各种打包和生成APP的方式多样,今天这里仅仅对用Hbuilder打包进行说明. 1.首先当然需要一 ...