• Ant学习笔记


         Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。简言之,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是Another Neat Tool,也就是另一种整洁的工具,取首字符就是Ant。构建工具就是为了减少重复工作而产生的。

    ant的好处:1,跨平台,因为ant是使用java实现的;2,使用简单;3,语法清晰;4,功能强大.

    1 Ant安装

    首先到ant官方网站(http://ant.apache.org)上下载并解压,eclipse自带Ant,可不必下载。

    其次,增加环境变量,在path中加入Ant的bin目录。

    最后在cmd命令行运行ant命令,如果显示:

    Buildfile: build.xml does not exist!
    Build failed

    说明安装成功。

    2 Ant能完成的工作

    init:初始化工作

    compile:编译工作,将java代码编译成class

    javadoc:生产文档,即API的相关文档

    jar:打包,即将编译后的class文件打成jar

    deploy:部署工作

    clean:清除工作,即清空初始化的环境

    all:执行全部任务

    3 build.xml配置文件

    在根目录下创建build.xml文件,通过Ant运行它即可完成相应的工作。

    示例代码如下:

    <?xml version="1.0"?>
    <project name="Hello world" default="doc">

    <!-- properies -->
    <property name="src.dir" value="src" />
    <property name="report.dir" value="report" />
    <property name="classes.dir" value="classes" />
    <property name="lib.dir" value="lib" />
    <property name="dist.dir" value="dist" />
    <property name="doc.dir" value="doc"/>

    <!-- 定义classpath -->
    <path id="master-classpath">
    <fileset file="${lib.dir}/*.jar" />
    <pathelement path="${classes.dir}"/>
    </path>

    <!-- 初始化任务 -->
    <target name="init">
    </target>

    <!-- 编译 -->
    <target name="compile" depends="init" description="compile the source files">
    <mkdir dir="${classes.dir}"/>
    <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4">
    <classpath refid="master-classpath"/>
    </javac>
    </target>

    <!-- 测试 -->
    <target name="test" depends="compile" description="run junit test">
    <mkdir dir="${report.dir}"/>
    <junit printsummary="on"
    haltonfailure="false"
    failureproperty="tests.failed"
    showoutput="true">
    <classpath refid="master-classpath" />
    <formatter type="plain"/>
    <batchtest todir="${report.dir}">
    <fileset dir="${classes.dir}">
    <include name="**/*Test.*"/>
    </fileset>
    </batchtest>
    </junit>
    <fail if="tests.failed">
    ***********************************************************
    **** One or more tests failed! Check the output ... ****
    ***********************************************************
    </fail>
    </target>

    <!-- 打包成jar -->
    <target name="pack" depends="test" description="make .jar file">
    <mkdir dir="${dist.dir}" />
    <jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}">
    <exclude name="**/*Test.*" />
    <exclude name="**/Test*.*" />
    </jar>
    </target>

    <!-- 输出api文档 -->
    <target name="doc" depends="pack" description="create api doc">
    <mkdir dir="${doc.dir}" />
    <javadoc destdir="${doc.dir}"
    author="true"
    version="true"
    use="true"
    windowtitle="Test API">
    <packageset dir="${src.dir}" defaultexcludes="yes">
    <include name="example/**" />
    </packageset>
    <doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle>
    <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom>
    <tag name="todo" scope="all" description="To do:" />
    </javadoc>
    </target>
    </project>


      以上xml依次定义了init(初始化),compile(编译),test(测试),doc(生成文档),pack(打包)任务,可以作为模板。
    解释上面的配置文件
    <?xml version="1.0" encoding="UTF-8" ?>,指定一下版本号和编码方式,几乎所有的XML文件的第一行都是这样.

    <project name="HelloWorld" default="run" basedir=".">,ant的所有内容必须包含在project元素里面,basedir是工作的根目录,default是默认要做的事.

    <property name="src" value="src"/>,指定变量

    <target name="compile" depends="init">
    <javac srcdir="${src}" destdir="${dest}"/>
    </target>,要运行的一个命令,depends是它所依赖的target,在执行前先检查depends是否被执行过,如果执行过则直接执行name的命令,否则先执行depends
    的命令.

    <target name="jar" depends="compile">
    <jar jarfile="${dist.jar}/ww.jar" basedir="${mm.classes}" includes="org/gd/**"></jar>
    </target>,创建一个jarfile定义的jar文件,包含basedir目录下前缀是org.gd.*的类文件。

  • 相关阅读:
    Scrum是脆弱的,不敏捷的
    Solr 全文搜索
    Java并发之线程封闭
    Java中的关键字synchronized
    Java并发框架:Executor
    锁,表锁,行锁,页锁,共享锁,排他锁
    事务及事务隔离
    MySql存储引擎:innodb myisan memory
    树,二叉树
    B树(B-树) 、B+树
  • 原文地址:https://www.cnblogs.com/xiaxiaoxuan/p/2936594.html
Copyright © 2020-2023  润新知