Ant tutorial(1)

系统 1637 0

     Apache Ant 是一个基于 Java 的生成工具 (another neat tool). 使用 Ant ,您能够编写单个生成文件,这个生成文件在任何 Java 平台上都一致地操作(因为 Ant 本身也是使用 Java 语言来实现的);这就是 Ant 最大的优势。

    Ant 没有定义它自己的自定义语法;相反,它的生成文件是用 XML 编写的 . 每个生成文件由单个 project 元素组成,该元素又包含一个或多个 target 元素。一个目标( target )是生成过程中已定义的一个步骤,它执行任意数量的操作,比如编译一组源文件。一次生成过程所必需的所有操作可以放入单个 target 元素中,但是那样会降低灵活性。将那些操作划分为逻辑生成步骤,每个步骤包含在它自己的 target 元素中,这样通常更为可取。这样可以执行整体生成过程的单独部分,却不一定要执行其他部分。例如,通过仅调用某些目标,您可以编译项目的源代码,却不必创建可安装的项目映像。

    顶级 project 元素需要包含一个 default 属性,如果在 Ant 被调用时没有指定目标,这个属性将指定要执行的目标。然后需要使用 target 元素来定义该目标本身。下面是一个最基本的生成文件:

<? xml version="1.0" ?>
< project  default ="init" >
   
< target  name ="init" >
   
</ target >
</ project >

一次性打开和关闭一个元素也是可以做到的。因此,与其像上面那样 target 元素使用单独的起始和结束标签,我们可以将它写为如下形式:        
< target  name ="init" />

当元素没有包含任何内容时,更简练的形式会更清晰。
看一个具体的例子:

<? xml version="1.0" ?>
< project  default ="init"  name ="Project Argon" >
    
< description >
   A simple project introducing the use of     descriptive tags in Ant build files.
    
</ description >
 
<!--  XML comments can also be used  -->
   
< target  name ="init"  description ="Initialize Argon database" >
 
<!--  perform initialization steps here  -->
   
</ target >
</ project >

Ant 中用于设置属性的机制 :   
< property  name ="metal"  value ="beryllium" />

为了在生成文件的其他部分引用这个属性,使用以下语法 :
                      
${metal}

为了使用这样一个值,它是另一个属性的值的组成部分,将标签写为下面这样:

< property  name ="metal-database"  value ="${metal}.db" />

属性经常用于引用文件系统上的文件或目录,但是对于使用不同路径分隔符(例如, / \ )的平台来说,这样可能在跨越不同平台时导致问题。 Ant location 属性专门设计用于以平台无关的方式包含文件系统路径。像下面这样使用 location 来代替 value

< property  name ="database-file"  location ="archive/databases/${metal}.db" />

用于 location 属性的路径分隔字符将被转换为当前平台的正确格式;而且由于文件名是相对的,它被认为是相对于项目的基目录。我们同样可以容易地写为下面这样:

    
      
        
< property  name ="database-file"  location ="archive\databases\${metal}.db" />
    
      
        定义依赖关系:
        
          使用
        
        
           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 检查 preprocesstarget ,发现它依赖 init 目标;由于已经执行了后者, Ant 不会再次执行它,因而开始执行 preprocess 目标。最后可以执行 compile 任务本身。注意目标出现在生成文件中的顺序并不重要:执行顺序是由 depends 属性唯一确定的。

Ant Eclipse 中—— Ant 编辑器

     <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <img height="235" hspace="0" src="/images/cnblogs_com/jeffchen/EclipseAntEditor.jpg" width="600"></shapetype>

名为 build.xml 的文件在 Eclipse 的导航程序视图中使用一个 Ant 图标来标识和装饰。右键单击这些文件会提供一个 Run Ant... 菜单选项,选择这个菜单选项将打开一个类似如下的对话框:

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

来自该生成文件的所有目标都显示出来了,而默认的目标则处于选中状态。在您决定是否要改变默认目标之后,请按 Run 按钮来运行 Ant Eclipse 将切换到 Console 视图,如下图所示。错误将以不同的颜色显示出来,可以单击输出中的任务名称来跳到生成文件中的对应调用点。

 

默认情况下, Eclipse 仅对名为 build.xml 的文件使用 Ant 编辑器,不过可以容易地配置该编辑器,使其识别具有其他名称的文件。从菜单上选择 Window=>Preferences ,然后展开 Workbench 组,再选择 File Associations 参数设置页面。然后为预期的文件名添加一种新的文件类型。例如,可以为名为 mybuild.xml 的所有文件添加一种新的文件类型。如果想对具有 .xml 后缀的所有文件(特殊文件名除外,比如 plugin.xml ,它在 Eclipse 中覆盖通配符指定)做同样的事情,您甚至可以使用 *.xml 最后为这种新的文件类型添加一个关联的编辑器,然后从编辑器列表上选择 Ant editor ,如下所示:

 

Ant tutorial(1)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论