使用Ant打包工具 基本介绍

由于使用java,javac,jar等工具进行编译打包,即繁琐低效又容易出错,因此Ant出现了。

Ant的出现就是专门为了打包编译java代码的,使用之前得稍微学一下。Ant的运行起来主要是依靠配置文件(XML格式),通常命名为build.xml。

使用ant之前当然先装好Java的JDK,JRE,该设的环境变量都弄好。

然后在cmd窗口中输入ant.bat。如果设置好ant_home的话,不需要绝对路径的。本人偷懒,没设,但照样可以用。

输入ant.bat -version,查看版本号。

如果正确显示,说明安装没有问题了。

接下来的主要任务,其实是如何编辑build.xml,因为ant所做的动作都是按照build.xml中规定的来执行的。可以从ant官网下载帮助文档。

帮助文档很详细,此处只是快速上手,因此简单讲解一下。

build.xml中的节点很多,但是以下几个节点比较重要,理解这些节点是很有必要的。

project,target,property,task,build-in property等.

project是项目的意思,它是Ant中build.xml文件的根节点, 配置文件至少应该包含一个project,否则会发生错误。在每个project元素下,可包含多个target元素。

project通常的写法为:

<project name ="jTest" default="jar" basedir=".">

意思是项目名为jTest,默认执行jar命令,基准目录是当前目录。

default指的是该配置文件中要运行的默认的目标。看稍后的例子就会明白。

再说一下property节点,这个节点类似是定义了一些常量。Ant自身内建了一些预定义的属性,比如${os.name} 的值就是当前操作系统的名字。如果某个值经常要用到的,那么把它自定义在属性里面,这样要用到这个值的时候,直接用${属性名} 的方式就可以获得了。内建属性也有很多,可以看帮助文档了解更多。这里只说明一下basedir属性,该属性设置了项目的基准路径,该属性在poject节点中定义。

property节点中,有2个特性,value和location,稍微有点区别,使用了value就不能使用location,反之亦然,如果这个属性的值是一个路径,那么,如果用value的话,就必须给出绝对路径,但是如果有location的话,可以只给出相对路径(相对于project中的basedir)。

target是目标的意思,它包含在project节点内部的,一个project节点可以包含多个target。

一个target内部是定义一些动作命令,即target内定义要做些什么任务。这些任务被称作task。要做什么任务必须要写什么样的指令。这些指令在帮助文档中都可以查到,这里只列出几个常见的。

copy,delete,mkdir,Jar,Java,Javac,看名字类似dos命令,作用也确实和dos命令的差不多。jar表示打包,java表示运行类文件,javac编译文件。

看一个例子:

  1. <target name="compile" depends="init"
  2. description="compile the source " >
  3. <!-- Compile the java code from ${src} into ${build} -->
  4. <javac srcdir="${src}" destdir="${build}"/>
  5. </target>

这组xml意思是target的名称为compile,这个可以自定义,depends指的是依赖另一个目标,也就是说若果要运行compile目标,必须先运行depends目标。

接下来就是javac任务,通过<javac srcdir="${src}" destdir="${build}"/>,表示对srcdir路径下的类运行javac命令编译,然后编译的结果输出到destdir中去。

${src},${build}都是属性值。

最后看一个例子。

假设当前的要打包的原文件的目录结构如下,把编辑好的build.xml文件放到要编译打包的目录中去。

  1. D:\TMPMULU
  2. │  build.xml
  3. └─src
  4. └─mytest
  5. ├─AnotherPackage
  6. │      ClassPrintA.java
  7. │      ClassPrintB.java
  8. └─mytestpkg
  9. Tj.java

build.xml的内容如下:

  1. <?xml version="1.0" ?>
  2. <project name ="jTest" default="jar" basedir="."><!--默认运行jar目标,但是jar目标依赖run目标,
  3. run目标依赖compile目标,compile目标依赖clean目标,因此运行顺序是clean,compile,run,jar-->
  4. <target name="clean">
  5. <delete dir="${basedir}/build"/><!--执行删除动作,删除路径在dir中定义,
  6. ${basedir}属性值在project节点中定义了-->
  7. </target>
  8. <target name="compile"  depends ="clean">
  9. <mkdir dir ="${basedir}/build/classes"/><!--mkdir,创建目录,运行该任务前必须先运行clean目标-->
  10. <javac srcdir ="${basedir}/src" destdir ="${basedir}/build/classes"/><!--运行javac,执行编译,编译的路径是srcdir,编译完成后输出目录是destdir-->
  11. </target>
  12. <target name="run" depends ="compile">
  13. <java classname ="mytest.mytestpkg.Tj"><!--执行java命令,即运行编译后的类,该目标必须在compile目标之后运行-->
  14. <classpath>
  15. <pathelement path="${basedir}/build/classes"/><!--dos中java命令要设置classpath参数,通过这个节点设置-->
  16. </classpath>
  17. </java>
  18. </target>
  19. <target name="jar" depends="run">
  20. <jar destfile="Tj.jar" basedir="${basedir}/build/classes"><!--运行jar命令,执行打包动作,必须在run目标完成才执行。-->
  21. <manifest>
  22. <attribute name="Main-class" value="mytest.mytestpkg.Tj"/><!--创建一个manifest文件。manifest文件的概念可以参考JAR文件规范
  23. http://docs.oracle.com/javase/1.5.0/docs/guide/jar/jar.html#JAR Manifest-->
  24. </manifest>
  25. </jar>
  26. </target >
  27. </project>

运行ant命令。两种方式:如果当前路径不是D:\tmpmulu\,则可以通过-f参数指定build.xml文件的位置。

C:\Users\Administrator>C:\ant\bin\ant.bat -f D:\tmpmulu\build.xml

如果当前路径是D:\tmpmulu\,直接运行ant.bat就可以了,ant会自动寻找build.xml.

运行后,界面上会显示出每个目标的运行情况,run目标中,会输出程序打印的内容。并且在basedir下,生成一个Tj.jar的包。运行后的文件结构如下:

  1. D:\TMPMULU
  2. │  build.xml
  3. │  Tj.jar
  4. ├─build
  5. │  └─classes
  6. │      └─mytest
  7. │          ├─AnotherPackage
  8. │          │      ClassPrintA.class
  9. │          │      ClassPrintB.class
  10. │          │
  11. │          └─mytestpkg
  12. │                  Tj.class
  13. └─src
  14. └─mytest
  15. ├─AnotherPackage
  16. │      ClassPrintA.java
  17. │      ClassPrintB.java
  18. └─mytestpkg
  19. Tj.java

借助一些IDE工具,比如eclipse等,可以不必手动编辑build.xml,工具会自动帮我们生成的。

本文出自 “一只博客” 博客,请务必保留此出处http://cnn237111.blog.51cto.com/2359144/1130502

时间: 2024-11-11 18:29:35

使用Ant打包工具 基本介绍的相关文章

压缩打包介绍、gzip压缩工具、bzip2压缩工具、xz压缩工具、tar打包工具、打包并压缩

压缩打包介绍 压缩完的文件,一般都是会小很多,更利于文件的传输和节省磁盘空间,带宽的资源也会减少. linux下常见的压缩文件(都是后缀名) .gz .bz2 .tar .tar.gz .tar.bz2 .tar.xz  linux下的文件后缀名可加可不加,但压缩文件最好用上后缀名.为了更方便的知道是由哪种压缩工具所压缩.           gzip压缩工具 先弄个大文件做测试: find /etc/-type f -name "*conf" -exec cat{} >>

前端打包工具——build release介绍

前言 对于前端开发者来说,资源打包是日常过程中一个必不可少的过程:目前我们大多数时候使用grunt.gulp.webpack这三个工具来完成这个工作:但是有一个特点就是我们没创建一个项目都要对应的去编写配置来完成打包任务,相当的繁琐,而且各种各样的配置挺让人头疼的.本人就是基于这个原因开发了一个命令行打包工具--build release:现放上使用指南,欢迎各位前端爱好者交流指正! 安装 本工具强依赖于Compass,所以安装之前请先确保您的电脑已经成功安装Compass npm instal

Ant、Gradle、Python三种打包方式的介绍

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 今天谈一下Androdi三种打包方式,Ant.Gradle.Python. 当然最开始打包用Ant 很方便,后来转Studio开发,自带很多Gradle插件就用了它,然后随着打包数量越多,打包时间成了需要考虑的事,前两者平均打一个包要花费2-3分钟,打30个就要差不多2个小时:而前两者打包的思路主要是,替换AndroidManifest.xml的meta-da

linux的zip、tar压缩打包工具介绍

zip压缩工具: 1.安装zip命令工具 yum install -y zip 2.zip压缩工具既可以压缩文件也可以压缩目录,而且压缩的时候不会源文件删除,示例如下: [[email protected] d6z]# ls                 //查看目录下的文件 1.txt.bz2  2.txt  3.txt  4.txt  aminglinux [[email protected] d6z]# zip 2.txt.zip 2.txt         //使用zip压缩2.txt

Unity自动打包工具

最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有一个专门的"工具程序员"开发各种工具.(ps:说起来这个王伟峰和他的创始团队成员,以前跟我是同一个公司的,公司名字就不透露了,只是当时在不同的部门,相互不认识).正好我们项目也到了后期,该准备接入渠道了.于是,我就着手写我们的打包工具.约定一下,下文中,平台是指操作系统平台,比如iOS.Android.WP8.Metro:渠道是指发布渠道,比如App Store.WP8商店.360.91.小米等. 上

MyEclipse使用Ant打包项目

本章主要介绍如何使用ant打包发布项目. ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 优点 ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 1.跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性. 2.操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样.Ant运行时需要一个XML文件(构建文件). A

细说前端自动化打包工具--webpack

背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.做网页就和用world编辑一个文档一样,只不过那个工具叫Dreamweaver.一个html页面,夹杂着css,javascript是再常见不过的事了. 随着前端的不断发展,特别是单页应用的兴起,这种所见即所得的IDE工具,就渐渐地退出了前端的主流.一个应用,通常只有一个静态页面(index.html),甚至这个页面的body只有一个或少数几个div组成.这时有

使用Ant打包Android应用具体解释

计划写个完整的使用Ant打包Android应用的系列文章.三篇文章.首篇具体介绍採用Ant打包Android应用的流程.列出部分定制问题及其解决方法,第二篇介绍我理解的Ant打包的思路与主要的概念和使用,最后一篇描写叙述apk包的生成过程. 实现的环境: 操作系统:ubuntu 64bit 14.04 Android SDK Build Tools:22.0.1 Android SDK Tools:24.3.3 Ant:1.9.4 ProGuard:5.2.1 JDK:1.7 一.简单应用出包流

深入了解Ant构建工具 命令

深入了解Ant构建工具 标签: ant工具任务jarjavaclass 2010-05-29 21:16 1346人阅读 评论(2) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 深入了解Ant构建工具 当一个项目很大的时候,每次都要重新编译,打包,测试变得非常复杂而且重复,Ant本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试.除了基于Java平台无关外,脚本格式是基于XML. Ant构建文件 当开始一个新的项目时,首先应该编写Ant构建文件.构建