zoukankan      html  css  js  c++  java
  • ANT超速入门


    0
    推荐

    要学习ANT的使用,要先了解什么是ANT。
    什么是ant呢? ant是构建工具;那构建是又什么意思呢?形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个。
    知道这些,我们还要了解为什么要用ANT,呵呵,哦对,就像那位MM说的,当然是有好处的:
    A, 跨平台  --因为ant是使用java实现的,所以它跨平台
    B,使用简单--与ant的兄弟make比起来
    C, 语法清晰--同样是和make相比
    D,功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant插件的时候,你会发现它更多的功能。

    一,构建ant环境
    要使用ant首先要构建一个ant环境,步骤很简单:
    1),安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH(这些应该是看这篇文章的人应该知道的)
    2),下载ant 地址http://17xx.zhmy.com找一个你喜欢的版本,或者干脆最新的版本
    3),解压ant 你得到的是一个压缩包,解压缩它,并把它放在一个尽量简单的目录,例如D:\ant-1.6虽然你不一 定要这么做,但这么做是有好处的。
    4),设置ANT_HOME PATH中添加ANT_HOME目录下的bin目录
    5),测试一下你的设置,开始-->运行-->cmd进入命令行-->键入 ant 回车,如果看到
    Buildfile: build.xml does not exist!
    Build failed
    那么恭喜你你已经完成ant的设置

    二,体验ant
    就像每个语言都有HelloWorld一样,一个最简单的应用能让人感受一下Ant
    1,首先你要知道你要干什么,我现在想做的事情是:
    编写一些程序
    编译它们
    把它打包成jar包
    把他们放在应该放置的地方
    运行它们
    这里为了简单起见只写一个程序,就是HelloWorld.java程序代码如下:
    package test.ant;
    public class HelloWorld{
     public static void main(String[] args){
      System.out.println("Hello world1");
     }
    };
    2,为了达到上边的目的,你可以手动的用javac 、copy 、jar、java来完成,但是考虑一下如果你有成百上千个类,在多次调试,部署的时候,一次次的javac 、copy、jar、
    java那将是一份辛苦的工作。现在看看ant怎么优雅的完成它们。
    要运行ant需要有一个build.xml虽然不一定要叫这个名字,但是建议你这么做
    下边就是一个完整的build.xml,然后我们来详细的解释每一句
    <?xml version="1.0" encoding="UTF-8" ?>
    <project name="HelloWorld" default="run" basedir=".">
     <property name="src" value="http://www.zhmy.com/src"/>
     <property name="dest" value="classes"/>
     <property name="hello_jar" value="hello1.jar"/>
     <target name="init">
      <mkdir dir="${dest}"/>
     </target>
     <target name="compile" depends="init">
      <javac srcdir="${src}" destdir="${dest}"/>
     </target>
     <target name="build" depends="compile">
      <jar jarfile="${hello_jar}" basedir="${dest}"/>
     </target>
     <target name="run" depends="build">
      <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
     </target>
     <target name="clean">
      <delete dir="${dest}" />
      <delete file="${hello_jar}" />
     </target>
     <target name="rerun" depends="clean,run">
      <ant target="clean" />
      <ant target="run" />
     </target>
    </project>
    解释:
    <?xml version="1.0" encoding="UTF-8" ?>
    build.xml中的第一句话,没有实际的意义
    <project name="HelloWorld" default="run" basedir=".">
    </project>
    ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。
    <property name="src" value="src"/>
    类似程序中的变量,为什么这么做想一下变量的作用
    <target name="compile" depends="init">
      <javac srcdir="${src}" destdir="${dest}"/>
    </target>
    把你想做的每一件事情写成一个target ,它有一个名字,depends是它所依赖的target,在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行
    过则直接直接执行compile,如果没有则会先执行它依赖的target例如这里的init,然后在执行这个target
    如我们的计划
    编译:
    <target name="compile" depends="init">
     <javac srcdir="${src}" destdir="${dest}"/>
    </target>
    做jar包:
    <target name="build" depends="compile">
     <jar jarfile="${hello_jar}" basedir="${dest}"/>
    </target>
    运行:
    <target name="run" depends="build">
     <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
    </target>
    为了不用拷贝,我们可以在最开始定义好目标文件夹,这样ant直接把结果就放在目标文件夹中了
    新建文件夹:
    <target name="init">
     <mkdir dir="${dest}"/>
    </target>
    为了更多一点的功能体现,又加入了两个target
    删除生成的文件
    <target name="clean">
     <delete dir="${dest}" />
     <delete file="${hello_jar}" />
    </target>
    再次运行,这里显示了如何在一个target里边调用其他的target
    <target name="rerun" depends="clean,run">
     <ant target="clean" />
     <ant target="run" />
    </target>
    好了,解释完成了,下边检验一下你的ant吧
    新建一个src的文件夹,然后把HelloWorld.java按照包目录放进去
    做好build.xml文件
    在命令行下键入ant ,你会发现一个个任务都完成了。每次更改完代码只需要再次键入ant
    有的时候我们可能并不想运行程序,只想执行这些步骤中的某一两个步骤,例如我只想重新部署而不想运行,键入
    ant build
    ant中的每一个任务都可以这样调用ant + target name
    好了,这样一个简单的ant任务完成了。

    到此你应该看出来了,ant的使用,关键就是build.xml的编写,一个优秀的build.xml可以用来做模板,甚至直接用就OK,打开命令提示窗口,键入ANT即可~~
  • 相关阅读:
    mac上python3安装HTMLTestRunner
    双目深度估计传统算法流程及OpenCV的编译注意事项
    深度学习梯度反向传播出现Nan值的原因归类
    1394. Find Lucky Integer in an Array
    1399. Count Largest Group
    1200. Minimum Absolute Difference
    999. Available Captures for Rook
    509. Fibonacci Number
    1160. Find Words That Can Be Formed by Characters
    1122. Relative Sort Array
  • 原文地址:https://www.cnblogs.com/redcoatjk/p/3562396.html
Copyright © 2011-2022 走看看