CenturyMagus的专栏

www.err123.cn ,收集各类编程错误的解决方案,欢迎大家访问

用户操作
[即时聊天] [发私信] [加为好友]
magusID:CenturyMagus
62904次访问,排名1684好友2人,关注者3
CenturyMagus的文章
原创 42 篇
翻译 1 篇
转载 40 篇
评论 23 篇
CenturyMagus的公告

ah011一起在友播听歌吧!
最近评论
zhengyuanting:通过URL传中文,如果不是post的话,是会乱码的
qq386232894:好文章!!!!
fz04003:谢谢啊,我终于搞懂这个东西了。
虽然我用的是JQuery,但是终于搞懂Struts这块是怎么回事了,谢谢!
小脚:终于全部搞懂了!!!谢谢老大~
小小鸟:好文章.比其他好多地方都讲的清楚透彻.赞一个.
文章分类
收藏
    相册
    编程网站
    Apache
    IBM DeveloperWorks
    onjava
    W3C
    编程错误解决方案收集
    计算机词汇在线词典
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 简明Ant学习笔记收藏

    新一篇: Ant 条件判断 condition | 旧一篇: Struts源码学习之ActionServlet(二)

    1. Ant 没有定义它自己的自定义语法;相反,它的生成文件是用 XML 编写的。

    2. Ant文件的基本元素
        1) project:一个文件包含唯一一个project元素。

        2) target:project元素中又包含若干个target元素。一个target是生成过程中已定义的一个步骤,它执行任意数量的操作,比如编译一组源文件。这些操作本身是由其他专用任务标签执行的。
           target元素的depends属性用来定义依赖关系,即定义了执行的顺序,每个目标的定义依据的是在它在能够执行之前必须完成的其他所有目标。
           例:
           <target name="init"/>
           <target name="preprocess" depends="init"/>
           <target name="compile" depends="init,preprocess"/>
           <target name="package" depends="compile"/>
     这种方法允许您执行项目任何阶段的生成过程;Ant 会首先执行已定义的先决阶段。在上面的例子中,如果让 Ant 完成 compile 步骤,它将判断出需要首先执行 init 和preprocess 这两个目标。init 目标不依赖其他任何目标,因此它将首先被执行。然后 Ant 检查reprocesstarget,发现它依赖 init 目标;由于已经执行了后者,Ant不会再次执行它,因而开始执行 preprocess 目标。最后可以执行 compile 任务本身。注意目标出现在生成文件中的顺序并不重要:执行顺序是由depends 属性唯一确定       的。
       
        3) property:Ant 中的property类似编程语言中的变量,它们都具有名称和值。然而与通常的变量不同,一经设置,Ant 中的属性就不可更改。如果尝试给某个现有属性赋予一个新的值,这不会被看作是一个错误,但是该属性仍然会保留其现有值。
           例:<property name="abc" value="aabbcc"/>
                   调用时用 ${abc} 即可

    3. project 元素需要包含一个default 属性,如果在Ant 被调用时没有指定目标,这个属性将指定要执行的目标。然后需要使用 target 元素来定义该目标本身。

        下面是一个Ant版的Hello World,呵呵

        

    
    
    	
    		
    	
    

     


    4. 在cmd中运行Ant,到build.xml文件夹下,直接出入ant就可以运行了。


    5. 编译Java源代码
       <javac srcdir="src"/>
       这个标签找寻src目录中以.java为扩展名的文件,并对其调用javac编译器。类文件生成于同  
       一个文   件夹内;加上destdir属性后可以使类文件生成于目标文件夹。
       属性classpath:等价于javac的-classpath选项。
       属性debug="true":指示编译器应该带调试信息编译源文件。
       javac的一个重要特点:对于从上次编译完后没有任何变化的源文件将不会被重新编译。为
       了确保所有文件都编译了,可以编写一个target,在重新编译前,从目标目录中移除已生成
       的任何类文件。
      

    另一个例子:

      
      
          
        	  
          
    
    
    
        
            
          
        	
    
    

     在这个例子中标签path将文件和路径包含其中;destdir代表编译后的class的目标文件夹;source是指jdk的版本;encoding是编译时使用的字符集;debug指示是否开启debug功能;标签src是源码的所在位置;标签classpath列出了编译时需要用到的jar包。


    6. 打jar包
       <jar destfile="package.jar" basedir="classes"/>


    7. 生成时间戳</tstamp>
       属性    说明 例子
       DSTAMP  设置为当前日期,默认格式为      yyyymmdd     20031217
       TSTAMP  设置为当前时间,默认格式为      hhmm             1603
       TODAY   设置为当前日期,带完整的月份   2003 年 12 月 17 日
      
    8. 创建和删除目录
       <mkdir dir="archive/metals/zinc"/>
       <delete dir="archive/metals/zinc"/>


    9.文件处理
      1)拷贝单个文件 
        <copy file="src/Test.java" tofile="src/TestCopy.java"/>
      2)拷贝文件夹及其内从
        <copy todir="${WEB-INF}">
              <fileset dir="WebContent\WEB-INF"/>
        </copy>


    10.调用外部程序。
       <target name="startTomcat" depends="copyFiles">
               <exec dir="${TOMCAT}\bin" executable="cmd.exe">
                       <arg value="/c startup.bat"/>
               </exec>
       </target>
    注:executable="cmd",可能无法正常运行,最好加上.exe。


    11.加入流程控制能力

    下载开源包ant-contrib,下载解压后将其中的ant-contrib.jar包放入ant的lib下,在build.xml中加入

    <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

    即可使ant获得编写if, for等流程控制功能的能力。


    12.如果想指运行某一个target,可以使用ant target_name的方法。例如:ant compile


    13.waitfor task

    阻塞执行直到某些特定条件为真。

    		
    			
    				
    			
    		
    上例阻塞执行直到制定的地址无效,最长15秒。属性maxwait代表最长等待时间;maxwaitunit代表maxwait数值的单位。

    发表于 @ 2008年07月22日 11:15:00|评论(loading...)|编辑|收藏

    新一篇: Ant 条件判断 condition | 旧一篇: Struts源码学习之ActionServlet(二)

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © CenturyMagus