设为首页 收藏本站
查看: 846|回复: 0

[经验分享] [try it] 使用Apache Ant

[复制链接]
累计签到:5 天
连续签到:1 天
发表于 2015-8-1 08:59:44 | 显示全部楼层 |阅读模式
  自从用了豆瓣,每每看完一部电影,或者一本书,总会在豆瓣留下几笔,对内容的理解也好,自己的感想也罢,少则用短评,多则用评论,偶尔复习浏览,整个的过程,对记忆非常有帮助,而且不怎么花时间 - 理解感想那是自然而然的事,不要去管什么格式文笔,一挥而就是了 —— 三拜九叩都做了,还怕这最后一哆嗦?
  但是对于技术,这方面的习惯不好 - 往往用过(试过)之后不注意记录,若干时间后又要用到,却已经忘的差不多了,又得重新来学一遍。 这些主要是一些工具,库什么的,以后就都记在博客中了,标之以[try it] 。
  要快速的学会使用一个新的工具,library,基本上有这么几个步骤吧:


  • 了解其基本概念:这是工具是干什么的,大概长的什么样,有什么特点与局限? 此时对其的认识还是比较抽象的
  • 下载安装其可用版本:保证其能运行,使用
  • 动手实践:根据教程,或者example,自己动手做个东西出来,这样就有一个非常直观的感受了
  这些资料,一般在官方网站能够找全,如果没有,相信搜也能搜到。
  废话讲完了,下面上ant。
  
  基本概念

  
Apache Ant是java世界中的make(make是微软世界中的VC project, btw),是一个主要用来管理软件编译的工具。和make一样,ant也有target,dependency和rule的概念,只不过格式不一样:
make:



target:dependencies
    rules
  ant




     

  
那么,已经有了make,为什么还需要ant呢? apache的理由是:
  1. make的格式比较不标准,tab啊space啊容易出错,ant采用xml,感觉是要标准很多
2. make多调用shell命令、程序,这对跨平台的java来讲是不能忍受的,ant采用java class实现的"task",和java跨一样的平台。
  这个理由还是蛮靠谱的。
  
  下载安装

  
如果只是使用ant的话,没必要自己没事找事下载source code编译,直接下binary版本:http://ant.apache.org/bindownload.cgi


  • .zip archive: apache-ant-1.8.2-bin.zip
  • .tar.gz archive: apache-ant-1.8.2-bin.tar.gz
  • .tar.bz2 archive: apache-ant-1.8.2-bin.tar.bz2
  这三个包的内容是一样的,只不过适用于不同的平台,.zip是Windows下常用的zip压缩包;.tar.gz是tar打包,gzip压缩;.tar.bz2是tar打包,bzip2压缩。
  安装很简单,就是解压缩:

  ant
+--- README, LICENSE, fetch.xml, other text files. //basic information
+--- bin  // contains launcher scripts
|
+--- lib  // contains Ant jars plus necessary dependencies
|
+--- docs // contains documentation
|      |
|      +--- images  // various logos for html documentation
|      |
|      +--- manual  // Ant documentation (a must read ;-)
|
+--- etc // contains xsl goodies to:
//   - create an enhanced report from xml output of various tasks.
//   - migrate your build files and get rid of 'deprecated' warning
//   - ... and more ;-)

  注意ant需要用到jdk,而不仅仅是jre,你需要设置相关的环境变量:



set ANT_HOME=D:\Source\Tools\apache-ant-1.8.2
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0
set PATH=%PATH%;%ANT_HOME%\bin
  Ant其实是一个java程序,一般通过shell或者batch封装的script运行,比如windows下就是ant.bat,做一些初始化的工作,然后调用java ant-launcher.jar。
  好,现在验证一下是否安装成功:



D:\Source\TestingArena\Java\Ant
$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 20 2010
  
  动手实践

  
ant manual的内容很多,但是要最快的学会一样东西,就是过一遍他的教程:Manual -> Tutorials,这些教程写的非常简单明了,而且提供了可以直接使用的代码与build.xml,我花了大概1个小时过了一遍前两个教程:HelloWorld和Write Tasks,就感觉对用ant写java程序,测试java程序有了很好的理解。
几个tips:


  • ant -diagnostics, ant -verbose, ant -debug对调试ant非常有用
  • 跑junit,你需要自行下载junit(https://github.com/KentBeck/junit/downloads), 命名成junit.jar并放到ant/lib目录中
  • 只要实现了public void execute()函数的java类就可以是一个ant task,ant会使用反射找到并执行它,当然,需要通过taskdef引入:



  • ant-contrib是一个比较常用的第三方task库,提供了不少辅助性质的task,如if,switch等控制语句. 他们往往提供了一个属性文件供你导入:



    该文件内容是task名字与jar包中类名的对应:


    if=net.sf.antcontrib.logic.IfTask
    foreach=net.sf.antcontrib.logic.ForEach
    throw=net.sf.antcontrib.logic.Throw
    trycatch=net.sf.antcontrib.logic.TryCatchTask
    switch=net.sf.antcontrib.logic.Switch
    outofdate=net.sf.antcontrib.logic.OutOfDate
  • build.xml中的property类似于变量,它也可以在其中文件中定义并导入:



    helloworld.property1=Hello
    helloworld.property2=World



            


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92875-1-1.html 上篇帖子: Apache Tomcat Configuration Reference 下篇帖子: apache的rewirte配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表