Ant

java平台批处理命令执行程序,自动完成编译,测试,打包,部署

Eclipse集成了Ant

语法:

1. ant的编译文件默认为build.xml,一般无需改变。

  build.xml定义了Ant要执行批处理命令。

2.build.xml的根节点为<project>,一般格式如下:

<project name="AntStudy" default="init" basedir=".">

name为工程名称;

default为默认的target,就是任务;

basedir就是基路径。一般为"."

3.property可以定义变量,一般格式如下:

<property name="test" value="shit" />

引用的时候这么引用${test}

如果变量是路径的话,则可以这么定义:

<property name="src" value="src" />

这么定义就可以不用担心"\"和"/"的问题了。

4.定义target:

<target name="compile" depends="init"><!--other command--></target>

name的值为target的名称,可以在编译的时候指定是完成哪个target,否则采用project那里定义的default。

depends则定义了依赖关系,值为其他target的name。多个依赖关系用","隔开,顺序执行完定义的依赖关系,才会执行这个target。

target在build.xml中定义的顺序无所谓,但是depends中的顺序必须正确。

5.编译源代码:

<javac srcdir="src" destdir="classes">
     <classpath>
             <fileset dir="lib">
                 <include name="**/*.jar"/>
             </fileset>
         </classpath>
</javac>

这个标签自动寻找src中以.java为扩展名的文件,并且调用javac命令。

这个任务有个特点,它仅仅编译那些需要编译的源文件。如果没有更新,就不需要编译,

速度就加快。

编译文件和ant使用的同一个jvm,大大减少资源浪费。

还可以指定classpath。classpath中指定文件夹,然后指定包含的文件的规则。

6.创建jar文件:

<jar destfile="antstudy.jar" basedir="classes">
<manifest>
   <attribute name="Main-Class" value="bean.ant.TestAnt" />
</manifest>
</jar>

manifest指定manifest中文件的属性,比如可以指定Main-Class

7.创建目录:

<mkdir dir="classes" />

创建classes的文件夹。

8.删除目录:

<delete dir="classes" />

删除classes文件夹

9.拷贝文件:

<copy todir="${backup.dir}">
        <fileset dir="${classes.dir}"/>
</copy>

把fileset文件夹下面的所有文件拷贝到 backup.dir

10.执行一个类:

 <java dir="${build}" classname="bean.ant.TestAnt" fork="true" />

dir为工作文件夹,classname为类名。fork要设置为true。因为你编译放class的文件夹    正在使用,所以要新打开一个虚拟机。

11.生成javadoc:

<javadoc sourcepath="${src}" destdir="${docs}/javadoc" encoding="utf-8" charset="utf-8" windowtitle="Spring Framework" source="1.5" access="package"  author="true" version="true" use="true" defaultexcludes="true">
<doctitle>
   <![CDATA[<h1>Ant Test</h1>]]></doctitle>
<bottom>
   <![CDATA[<i>Copyright (c) 2002-2007</i>]]></bottom>
<packageset dir="${src}">
   <include name="bean/ant/**" />
</packageset>
</javadoc>

encoding="utf-8" charset="utf-8" 都需要,否则javadoc是乱码。

packageset一定要设定,否则找不到源码,格式可以是**.意思是所有源码。

12.path的使用,可以定义path对象,在其他地方可以直接复用。

<path id="1">
   <pathelement location="."/>
   <pathelement location="./lib/junit.jar"/>
</path>

<path id="2">
   <fileset dir="lib">
   <include name="**/*.jar"/>
   </fileset>
</path>

<javac srcdir="./src" destdir="./classes">
   <classpath refid="1"/>
</javac>

<javac srcdir="./src" destdir="./classes">
      <classpath refid="1">
          <pathelement location="."/>
          <pathelement location="./lib/junit.jar"/>
      </classpath>
</javac>

13.单元测试:

<junit printsummary="yes">
   <classpath refid="testpath" />
   <batchtest>
    <fileset dir="${test}">
     <include name="**/*Test.java" />
    </fileset>
   </batchtest>
</junit>

batchtest为批量test,需要设置符合条件的类名称。

在进行单元测试之前必须先进行编译。

配置的classpath指向一个testpath的path,就是上面哪一条里面讲的。

一开始会报一个找不到junit的错误,可以用下面方法解决:

Windows>>Preference>>Ant>>Runtime>>Classpath

添加一个junit.jar 在 [eclipse home]\plugins\org.junit_3.8.1可以找到。

ant打包流程:

Eclipse使用bin作为自己的数据文件夹:

classes.dex是class文件经过转换后的可以在dalvik上跑的精简类文件,resources.ap_是经过打包的资源文件,

ant.apk就是最终的打包文件。

使用ANT来对应用打包,一般会经过以下几个步骤:

1.用aapt命令生成R.java文件

2.用aidl命令生成相应java文件

3.用javac命令编译java源文件生成class文件

4.用dx.bat将class文件转换成classes.dex文件

5.用aapt命令生成资源包文件resources.ap_

6.用apkbuilder.bat打包资源和classes.dex文件,生成unsigned.apk

7.用jarsinger命令对apk认证,生成signed.apk

Ant内置属性

basedir:project及目录的绝对路径

ant.file:buildfile绝对路径(ant.file值为build.xml)

ant.version:Ant版本

ant.project.name当前指定project名称,即project的name值

ant.java.version:Ant检测到jdk版本

Ant可代替javac,java,jar等命令执行java操作

时间: 2024-12-28 17:51:37

Ant的相关文章

jmeter+ant+jenkins+mac报告优化

一.在上篇博客中生成的报告有两个问题: 1.date not defined 2.Min Time和Max Time显示成了NaN 二.Jmeter+Ant报告生成原理: 在解决问题之前,让我们先弄清楚Jmeter+Ant是生成报告的原理,知道原理后我们就可以很从容的解决问题了.另外,如果后续我们想定制报告也就很容易了. 1.在Jmeter的extras目录下,官方已经为我们提供了一个现成的实例,我们只需要在该目录下执行ant命令就可以生成一个数据文件Test.jtl和一个报告Test.html

Ant: Class not found: javac1.8

今天用ant,在选择build.xml,run as ant build后出错Ant: Class not found: javac1.8 分析问题:是否是eclipse中的ant版本和java的版本不匹配那? 解决方法如下: 1. 去下载一个最新版本的ant,解压到本地相应目录下,我下载的是apache-ant-1.9.7 2. 在eclipse中, windows-  references---Ant  ----run time,点击Ant home, 将路径制定到下载的ant目录下 3.

Maven和Ant的区别

最近做的项目中一直是在使用maven,但是要知道最早出来的构建工具是Ant,现在Ant依然有好多人再用,于是自己就抽出来时间,学习了一下Ant的基本的使用.这样也能跟好的理解Maven提供的新特性. 首先说一下他们各自的作用: Ant的作用:是一种基于Java的build工具 可以用ant编译java类,生成class文件 ant可以自定义标签.配置文件,用于构建. ant可以把相关层构建成jar包 . ant把整个项目生成web包,并发布到Tomcat Ant的优点: 跨平台性:Ant是纯Ja

Ant入门教程之部署Java项目

Ant可以代替使用javac.java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的. 1.利用ant的javac命令来编译Java程序 Ant的javac命令用于实现编译Java程序的功能.下面来看一个简单的例子:首先我们建立名为 JavaPro的Java项目, 建立src目录为源代码目录,在src目录下建立TestAnt.java这个类文件.该类文件的内容如下: package com.home; public class TestAnt{ public sta

ant编译后用hadoop报Could not find or load main class

错误信息: [[email protected] HDFS_Java_API]$ hadoop HDFSJavaAPI.jar HDFSJavaAPIDemo Warning: $HADOOP_HOME is deprecated. Error: Could not find or load main class HDFSJavaAPI.jar 报错原因: 当前运行的 .class  文件不在 hadoop-env.sh文件中 解决办法: 在 hadoop-env.sh中配置HADOOP_CLA

ant完成文件上传和启动服务

首先,请先下载JAR包.Ant上传文件到Linux服务器使用scp,需要下载jar包jsch.jar,将jar包放入ant的lib文件夹下. <?xml version="1.0" ?> <project name="${project.name}" default="start-server" basedir="."> <property name="password" va

使用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 Design of React的安装和使用方法

在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,给设计师和工程师带来很多困扰和重复建设,大大降低了产品的研发效率.我们(蚂蚁金服体验技术部)经过大量的项目实践和总结,沉淀出一个中台设计语言 Ant Design.旨在统一中台项目的前端 UI 设计,屏蔽不必要的设计差异和实现成本,解放设计和前端的研发资源. Ant Design 是一个致力于提升『用户』和『设计者』使用体验的中台设计语言.它模糊了产品经理.交互设计师.视觉设计师.前端工程师.开发工程师等

Apache Ant安装 验证

1.下载Apache Ant 去官网下载ant,官网地址:http://ant.apache.org/ 我下载的是apache-ant-1.10.1-bin.zip 直接解压,放到制定目录下,如C:\apache-ant-1.10.1 2.配置环境变量 按照如下格式配置环境变量: ANT_HOME D:\SWE\apache-ant-1.8.4 CLASSPATH ;%ANT_HOME%\lib; PATH  ;%ANT_HOME%\bin; 3.验证. 安装完成之后,输入ant -versio

混合式app ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)

1.ionic简介 为什么选用ionic: 彻底开源且免费 性能优异 基于红的发紫的AngularJs 漂亮的UI 强大的命令行(基于更热门的nodejs) 开发团队非常活跃 ngCordova,将主流的Cordova API或者Cordova插件封装为AngularJS扩展,使用非常方便 开源免费的webfont icon库ionicons,基本满足你icon需求 2.相关下载: Node.js(npm安装工具) :  https://nodejs.org/en/ jdk (android编译