免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1311 | 回复: 0
打印 上一主题 下一主题

ANT构建脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-29 14:31 |只看该作者 |倒序浏览
ANT构建脚本 1.3.0

张经纬 2006-10-29

ANT官方站:
http://ant.apache.org/

  我们的项目中有一个主项目和几个小项目,主项目有几个人同时开发,小项目通常是由一个人开发。在开发过程中,除了最终的发布版本,还需要对小版本进行管理。
  小版本的管理有些麻烦,因为在打包时,开发人员通常也只是打包源代码。作为开发人员不会每天晚上完成工作后,把项目所需要的东西完整的打包在一起,不现实且效率也低。但从管理的角度来看,这是有用的,除了浪费一些存储空间,这种方式有助于项目经理了解项目的进展情况,对风险控制也是有益的。

  我们项目使用subversion做版本控制,每个项目都有下面的结构:
    Project
    ├─debug
    │  ├─bin
    │  ├─conf
    │  ├─classes
    │  ├─doc
    │  ├─lib
    │  └─src
    └─release
        ├─project-1.0.0
        │   ├─bin
        │   ├─conf
        │   ├─doc
        │   ├─lib
        │   └─src
        ├─project-1.0.1
        │   ├─bin
        │   ├─conf
        │   ├─doc
        │   ├─lib
        │   └─src
        └─project-1.2.0
             ├─bin
             ├─conf
             ├─doc
             ├─lib
             └─src
  开发人员从debug上checkout出来要开发的项目,完成后commit,在需要更新版本时,使用ant的构建脚本自动构建出完整的分发包,再从本地import到版本库中。当本地workcopy很干净时,也可以直接创建一个分技到新的带有版本号的目录中(例:./release/project-1.2.1/)。我们通常使用第一种做法,打包后import到版本库中。

  分发包使用ANT的构建文件(build.xml)自动构建。ANT的使用并不难,内容也不多。关键是在构建时的目的,和要遵循的原则。
  1. 在开发时构建。
    在unix下面工作时,经常没有IDE。用ant来构建比用命令行方便。当然也可以写脚本,但脚本的移植性不好。
  2. 为了分发构建。
    构建的目的是构建用户最终使用的版本(可以不包括源代码)。
  3. 为了开发构建。
    在开源社区里,代码是共享的。这时构建的目的,一方面是分发,给最终用户使用,另一方面是提供给用户能够再次开发的版本。

  我们现在使用的构建文件是参考了几个开源包里的build.xml文件后,自己做的,现在是的版本1.3.0。编写时的思路是用户能够使用发构建出来的分发包,再次构建分发包,不修改或少修改构建文件。可以理解为嵌套。

  这个配置文件在使用时,只需要修改几个主要参数:
    项目名称:别的不用说,只是在构建jar包时也会用到;
    版本号:分为主版本、次版本和修改版本;
    主要项目路径:源代码(src.dir)、库目录(lib.dir)、文档目录(doc.dir)等;
    主要构建路径:源代码(dist.src.dir)、库目录(dist.lib.dir)、文档目录(doc.dir)等。

  另外,如果项目有需要,如有测试用例,可以打开构建选项:
  
  这个选项,默认是被注释掉的。

  需要注意一点,如果希望构建出来的分发包可以使用包中的build.xml不加修改的再次构建,就需要在设置路径时,都以项目路径为根目录来设置。如果使用绝对地址,多数情况构建出来的分发包再构建时要出错了。
  这个脚本现在仍在改进中,有兴趣的朋友可以一起讨论。

  下面的配置文件,也可以下载:
build.xml







  
  











































































  



  



  
   
  



















  
  
  


  
  


  
  
  
  





  ${Name} Build file
-------------------------------------------------------------
available targets are:

jar  - generates the ${Name}.jar file
build - compiles the source code
javadoc - generates the API documentation
clean - cleans up the directory
dist - will create a complete distribution in dist
    Setting the env variable NO_JAVADOC will build the
    distribution without running the javadoc target.
   
release - will create a complete distribution in dist
    using stricter settings for public distribution.
   
Please rename build.properties.default to build.properties
and edit build.properties to specify JSDK 2.3 classpath.
  
See the comments inside the build.xml file for more details.
-------------------------------------------------------------






  
  
  
   
   
   
   
   
   
  



  
  
  
   
  



  
  



  



  
  
  






  
  
   
  



  
  
   
  



  
  



  
  
  
   
  



  
  
  
   
  



  
  
  
   
  



  
  
  
   
  



  
  
  
   
  



  
  
  
   
  



  
  
  



  
  
  









本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5033/showart_192079.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP