道非道 非常道

勤思、谨言、慎行、厚积、薄发

统计

web

天圆

经济 政治 军事

键康

ant 学习笔记 (一)

       Ant 学习笔记(1)
 介绍、下载、说明、安装

Ant 全名: Another Neat Tool ,意思是另一个清洁工具。

Ant 介绍:
        ant 是构建工具,是Apache 的一个项目,是一个基于JAVA的build工具,用来编译、运行、测试JAVA
    程序,构建、包装和发布任务。
Ant 优势:
        * 操作方便,只需在命令行输入 ant ,它就会自动寻找 build.xml文件。
        * 良好的跨平台,可以在各种平台上运行。
        * 结构清晰,能让开发人员运行各种各样的任务。
Ant 下载:
    http://ant.apache.org/
Ant 配置:
        1.环境变量中,查找 Path 变量并选中,然后编辑,如果没有新建,,在弹出的“系统变量”对象话中设定
    系统变量 Path,Path = D:\*\Apache-ant- 1.7.0\bin
      2.单击“系统变量”选项卡中的新建按钮,创建 ANT_HOME=D:\*\apache-ant-1.7.0
      3.在cmd命令框中输入ant 命令,即可查看 Ant  是否安装成功
      注意:
          ant 启动时,自动加载 build.xml 项目配置文件,如果取别的名字,使用 buildfile标记
          运行 Ant ,比如: ant -buildfile gd.xml
Ant 的使用方法:
        Ant 的配置运行文件是 build.xml,一般放在项目根目录下,通过运行它即可完成相应工作。
Ant 能完成的工作:
        init ,初始化工作,即在进行打包、部置之前对环境进行一些初始化工作。
        compile,编译工作,即将java代码编译成class;
        javadoc,生成文档,即用来生成API的相关文档;
        jar,打包工作,即用来将编译后的class文件打成jar;
        deploy,部署工作,即用来对打好的jar或war进行部署;
        clean,清除工作,即用来清空初始化的环境;
        all,执行全部任务。

 元素属性说明

    一般来讲,一个XML文件要包含 project 和target 两个元素
    1.project 元素的属性:
                name:表示一个工程的名字.
                default:每个project都包含一个或多个target,一个target又包含一系列想要执行的task,
        当Ant 开始运行时,开发人员可以选择target执行.如果没有 target 被指定执行时,默认的任务
        将执行.
                basedir:当前工程的基本路径,"."表示当前工程的根目录.
    2.一个project有一系列的property,property类似于全局变量,包含name和value两个属性.
                name:变量名称.
                value:变量值.
                属性该问的方法:${property-name};
    3.Ant 内置的属性
                basedir:工程的路径.
                ant.file:build文件的路径.
                ant.version:版本.
                ant.project.name:工程名.
                ant.java.version:jvm版本.
    4.target 元素的属性
                name:指定目录名称.
                depends:指定所依赖的target.
                if:条件,如果不满足条件则不执行.
                unless:条件,如果不满足条件则不执行.
                description:对target 的描述.
                task:一小段的任务.
                reference:引用,通过refid属性来引用在其他节中定义的ID.

ant 的基本语法介绍:
        1.ant 命令行,最常用的命令分析如下:
            //应用 build.xml 作为默认的脚本文件,目录路径默认。
            ant
           
            //应用 test.xml 作为默认的脚本文件,目录路径默认。
            ant  -builefile test.xml
           
            // 应用 test.xml 作为默认的脚本文件,目录路径设置为 dist
            ant -builefile test.xml dist
           
            //应用test.xml 作为默认的脚本文件,目标路径设置为 dist ,并且把构建的属性文件放在
              buile/classes  下
             ant -buildfile test.xml -Dbuile=buile/classes dist
             
             //执行从/home/ant/extras 添加的任务和jar 包
             ant -lib /home/ant/extras
        想了解更多的命令,可以运行 ant -H获取命令列表。
        2.添加属性文件
            <property file="${basedir}/build.properties" />
        3.CLASSPATH设置,示例如下:
            <path id="classpath">
                    <pathelement path="${hibernate_jar}"/>  //从什么地方加载
                    <fileset dir="${lib.dir}"> //设置文件夹
                            <include name="**/*.jar" />   //将.jar 放在dir中
                    </filest>
            </path>
            以上代码与设置 CLASSPATH=/***/*.jar;/***/*.jar;是等效的
        4.文件COPY命令,示例代码如下:
            <!-- 拷贝源文件 -->
            <copy todir="${build.src}">
                <fileset dir="${src.dir}"/>
            </copy>
        5.打包任务jar 命令,示例代码如下
            <!-- 打包文件 -->
            <jar jarfil="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" />
        6.生成JAVADOC的命令,示例代码如下:
            <javadoc pachagename="${[aclages}"     //包名
                                sourcepath="${build.src}"    // 源文件路径
                                destdir="${build.javadosc}"  // 目标路径
                                author="true"                
                                version="true"               //是否带有版本信息
                                use="true"                                     //
                                splitindex="true"
                                windowtitle="${NAME}API"
                                doctitle="${NAME}">
                <javadoc>
            7.删除命令,示例代码如下所示:
                <delete dir="${dir.build}" />
               
                ant 在线文档,地址是:http://ant.apache.org/manual/index.html
               
            8.后台打印命令
                <echo message="jdk version: 1.5.0" />

一些常用的 ant 文件:
       <?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
     2007-10-24 上午09:01:29                                                       

     project   
     description
                  
     yihang                                                               
     ====================================================================== -->
<project name="project" default="default">
    <description>
            转换字符
    </description>
   
    <target name="help">
        <echo message=" this is  help"></echo>
   
    </target>

    <!-- =================================
          target: default             
         ================================= -->
    <target name="default" description="--> description">
        <native2ascii dest="." includes="src/com/news/struts/*.txt" encoding="GBK" ext=".properties"></native2ascii>
    </target>

</project>

元素说明:
<?xml version="1.0"?>
<!--配置myApp的Ant文件,将gd包中的内容打成jar -->
<project name="myApp" default="init" basedir=".">
    <property name="myApp.home" value="." />
    <property name="myApp.lib" value="${myApp.home}/WEB-INF/lib" />
    <property name="myApp.jar" value="${myApp.home}/WEB-INF/lib" />
    <property name="myApp.classes" value="${myApp.home}/WEB-INF/classes" />
    <!--配置使用Tomcat所在的目录 -->
    <property name="tomcat.home" value="D\:/apache-tomcat-6.0.2" />
    <!--<property file="build.properties" />以上内容还可以定义在build.properties中-->
    <target name="init">
        <path id="all">
            <!--初始化时需要使用的jar -->
            <fileset dir="${myApp.lib}">
                <include name="**/*.jar" />
            </fileset>
            <!--初始化时需要使用的jar -->
            <fileset dir="${tomcat.home}/common/lib">
                <include name="*.jar" />
            </fileset>
        </path>   
        <!--创建目录 -->
        <mkdir dir="${myApp.classes}" />
    </target>
    <!--定义 target -->
    <!--清空生成的calss -->
    <target name="clean">
      <!-- 删除目录 -->
        <delete dir="${myApp.classes}">
        </delete>
    </target>
    <!--定义target,该target依赖于init,编译时需要依赖与初始化的结果 -->
    <target name="compile" depends="init">
        <!--编译时使用的版本是1.5 -->
            <javac srcdir="${myApp.home}/WEB-INF/src"
encoding="utf-8"  destdir="${myApp.classes}" target="1.5">
            <classpath refid="all" />
        </javac>
    </target>
    <!--定义target,该target 依赖于 compile,com.gd包下的代码打成加,命名为nancy2.0.0.jar -->
    <target name="jar" depends="compile">
        <jar jarfile="${myApp.jar}/nancy2.0.0.jar" basedir="${myApp.classes}" includes="com/gd/**">
        </jar>
    </target>
    <!--将myApp项目打成war文件-->
    <target name="war" depends="jar">
        <war destfile="${myApp.home}/myApp.war" webxml="${myApp.home}/WEB-INF/web.xml">
                <!-- 包含该文件夹下所有内容 -->
            <fileset dir="${myApp.home}" casesensitive="yes">
                <include name="WEB-INF/**" />
                <exclude name="*.war" />
            </fileset>
            <!--所依赖的jar-->
            <lib dir="${myApp.home}/WEB-INF/lib">
                <include name="*.jar" />
            </lib>
        </war>
    </target>
</project>





posted on 2009-06-25 09:05 星期五 阅读(284) 评论(0)  编辑  收藏 所属分类: 项目工具


只有注册用户登录后才能发表评论。


网站导航: