Ant标签详解--Java命令
- 格式:docx
- 大小:18.85 KB
- 文档页数:6
Ant是一种基于Jav a的bui ld工具。
理论上来说,它有些类似于(Un ix)C中的make,但没有make的缺陷。
既然我们已经有了ma ke, g numak e, nm ake,jam以及其他的bu ild工具为什么还要要一种新的build工具呢?因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。
类似于m ake的工具本质上是基于she ll(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。
这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Un ix。
Makef ile也很可恶。
任何使用过他们的人都碰到过可恶的t ab问题。
Ant的原作者经常这样问自己:“是否我的命令不执行只是因为在我的ta b前有一个空格?!!”。
类似于jam的工具很好地处理了这类问题,但是(用户)必须记住和使用一种新的格式。
Ant就不同了。
与基于shel l命令的扩展模式不同,Ant用Java的类来扩展。
(用户)不必编写sh ell命令,配置文件是基于XM L的,通过调用ta rget树,就可执行各种tas k。
每个t ask由实现了一个实现了特定T ask接口的对象来运行。
(如果你对Ant一点概念都没有的话,可能看不懂这一节,没有关系,后面会对t arget,task做详细的介绍。
你如果没有太多的时间甚至可以略过这一节,然后再回来浏览一下这里的介绍,那时你就会看懂了。
同样,如果你对m ake之类的工具不熟悉也没关系,下面的介绍根本不会用到mak e中的概念。
ant使⽤指南详细⼊门教程这篇⽂章主要介绍了ant使⽤指南详细⼊门教程,本⽂详细的讲解了安装、验证安装、使⽤⽅法、使⽤实例、ant命令等内容,需要的朋友可以参考下⼀、概述ant 是⼀个将软件编译、测试、部署等步骤联系在⼀起加以⾃动化的⼀个⼯具,⼤多⽤于Java环境中的软件开发。
在实际软件开发中,有很多地⽅可以⽤到ant。
开发环境:复制代码代码如下:System:Windows JDK:1.6+ IDE:eclipse ant:1.9.1⼆、优点ant 是Apache软件基⾦会JAKARTA⽬录中的⼀个⼦项⽬,它有以下的优点: 1、跨平台性:Ant是纯Java语⾔编写的,所以具有很好的跨平台性。
2、操作简单:Ant是由⼀个内置任务和可选任务组成的,⽤ant任务就像是在dos中写命令⾏⼀样。
Ant运⾏时需要⼀个XML⽂件(构建⽂件)。
Ant通过调⽤target树,就可以执⾏各种task。
每个task实现了特定接⼝对象。
3、维护简单、可读性好、集成简单:由于Ant构建⽂件时XML格式的⽂件,所以很容易维护和书写,⽽且结构很清晰。
Ant可以集成到开发环境中。
由于Ant的跨平台性和操作简单的特点,它很容易集成到⼀些开发环境中去。
三、安装和配置2、解压zip压缩包,将压缩包放置你要放置的⽬录。
我这⾥放置在D:\apache-ant-1.9.1,⽬录结构如下:bin是ant的程序运⾏⼊⼝,如果没有配置ANT_HOME的情况下,可以通过bin⽬录中的bat程序进⾏运⾏build任务。
如:在cmd中运⾏ant.bat就可以执⾏程序,当然你选择要当前⽬录中存在⼀个build.xml(build.xml是默认的ant执⾏⽂件,当然你可以指定其他⽂件)etc⽬录中存放的都是⼀些xsl的输出模板,创建⼀个加强的导出各种任务的XML输出,使你的build⽂件摆脱过时的警告lib⽬录中存放的是ant程序需要依赖的jar包manual⽬录是ant程序的帮助⽂档3、在我的电脑 –> 右键属性 –> ⾼级系统配置 -> 环境变量中配置ant新建系统变量 ANT_HOME = D:\apache-ant-1.9.1这样环境变量就配置好了,但前提你需要配置jdk的环境变量。
Ant是什么Ant是什么?⼀、总结⼀句话总结:> 编译打包测试⼯具 xmlAnt是Java的⽣成⼯具,是Apache的核⼼项⽬;Ant类似于Unix中的Make⼯具,都是⽤来编译、⽣成;Ant是跨平台的,⽽Make不能;Ant的主要⽬的就是把你想做的事情⾃动化,不⽤你⼿动⼀步⼀步做,因为⾥⾯内置了javac、java、创建⽬录、复制⽂件等功能,所以可以直接点击Ant⽂件,即可编译⽣成你的项⽬。
当⼀个代码项⽬⼤了以后,每次重新编译,打包,测试等都会变得⾮常复杂⽽且重复,因此c语⾔中有make脚本来帮助这些⼯作的批量完成。
在Java 中应⽤是平台⽆关性的,当然不会⽤平台相关的make脚本来完成这些批处理任务了,ANT本⾝就是这样⼀个流程脚本引擎,⽤于⾃动化调⽤程序完成项⽬的编译,打包,测试等。
除了基于JAVA是平台⽆关的外,脚本的格式是基于XML的,⽐make脚本来说还要好维护⼀些。
1、ant⼀般在项⽬中以什么样的形式存在?> build.xml当在项⽬中创建⼀个build.xml时,这个⽂件就是ant的⽣成⽂件。
2、ant的⽂件结构是怎样的?> project target taskant的默认⽣成⽂件为build.xml;输⼊ant后,ant会在当前⽬录下搜索是否有build.xml,如果有,则执⾏;当然也可以⾃定义⽣成⽂件,通过ant -f a.xml即可指定a.xml为⽣成⽂件;ant的⽣成⽂件是xml⽂件,整体结构为:<?xml version="1.0" encoding="GBK"?><project default="targetname"><target name="name"></target></project>project是⽣成⽂件的根元素,表⽰⼀个⼯程;target是project的⼦元素,表⽰⼀个任务;⼀个project中可以定义多个target元素,表⽰多个任务;default属性表⽰默认执⾏的target,如果ant命令没有指定target,则执⾏default的target;ant targetname; 则会执⾏此target,⽽忽略default设置的target;targetname不能重复。
ant的javac标签(归纳)<javac>任务和javac命令是相似,它编译两种类型的java⽂件1)没有被编译的java⽂件2)曾经编译过,但是class⽂件版本和当前对应的java⽂件版本不匹配的java⽂件。
1)javac命令⽀持的参数:Attributes Descriptionsrcdir :必须的,除⾮嵌套有<src>标签。
包含源⽂件的⽂件夹bootclasspath:编译过程中需要导⼊class⽂件会被导⼊bootclasspathref:编译过程中需要引⽤的class⽂件夹⽬录classpath:The class path to use. ⽂件夹中class会被导⼊的jar包classpathref:⽂件夹中class⽂件会被引⽤的jar包compiler :指定要使⽤的编译器。
如果未设置该特性,将使⽤ piler 属性的值(如果设置)。
否则,将使⽤当前 VM 的默认编译器。
例⼦:设置环境变量 JIKESHOME 为 jikes 的路径设置 ANT_OPTS=piler=jikes将 jikes 路径添加到系统 PATH 中然后在所有的ant任务就默认使⽤ jikes 了, 如果你想在单个⼯程中使⽤ ant, 就不要添加 ANT_OPTS 环境变量, 只需要修改 build.xml 中 javac 标签中的 compiler 为 jikesdebug:当值未为true时产⽣调试信息debuglevel:相当于命令⾏中要追加到 -g 命令⾏开关后⾯的关键字列表。
这将会被除 modern 和 classic(ver >= 1.2) 以外的所有实现忽略。
合法值是 none 或下列关键字的逗号分隔列表:lines、vars 和 source。
如果不指定 debuglevel,则默认情况下,将不会在 -g 的后⾯追加任何关键字。
如果不打开 debug,该特性将被忽略。
ant 条件判断摘要:1.什么是Ant条件判断2.Ant条件判断的语法3.Ant条件判断的使用场景4.Ant条件判断的运算符5.Ant条件判断的示例正文:Ant条件判断是Ant构建工具中用于控制构建过程执行的一个特性。
通过Ant条件判断,我们可以根据不同的条件执行不同的任务,从而使构建过程更加灵活。
在Ant中,条件判断使用`<if>`、`<else>`和`<endif>`标签来实现。
语法如下:```<if>条件表达式</if><then><!-- 当条件为真时执行的任务--></then><else><!-- 当条件为假时执行的任务--></else></if>```Ant条件判断的使用场景包括:根据不同的环境变量、系统属性、文件存在性等条件来执行不同的任务。
例如,我们可以根据系统属性``的值来选择编译不同的Java版本。
Ant条件判断支持多种运算符,包括:`eq`(等于)、`ne`(不等于)、`gt`(大于)、`ge`(大于等于)、`lt`(小于)和`le`(小于等于)。
此外,还可以使用`!`(非)和`&&`(与)运算符组合多个条件。
下面是一个Ant条件判断的示例:```xml<project><property name="" value="Linux"/><if><os family="unix" /><then><echo>您正在使用Unix系统</echo></then><else><echo>您正在使用其他系统</echo></else></if><if><os name="Linux" /><then><echo>您正在使用Linux系统</echo></then><else><echo>您正在使用其他Linux衍生系统</echo></else></if></project>```在这个示例中,我们首先使用`<property>`标签设置``属性。
ant指令详解2篇ant指令详解第一篇Ant(Another Neat Tool)是一款基于Java的构建工具,广泛用于自动化构建和部署Java应用程序。
它的诞生源于Apache软件基金会,可以帮助开发人员轻松地编译、打包和部署项目。
本文将详细介绍Ant指令的使用和功能。
Ant指令是Ant构建脚本中的命令行指令,用于定义构建流程、编译代码、打包文件等操作。
Ant采用XML格式的构建文件,将一组Ant指令按照特定的顺序组织起来,通过执行构建文件,可以自动完成一系列构建任务。
首先,让我们来了解一些常用的Ant指令。
首先是javac指令,用于将Java源代码编译成Java字节码文件。
示例代码如下:```xml<javac srcdir="./src" destdir="./bin"includeantruntime="false" />```上述指令将src目录下的Java源代码编译成字节码文件,并将生成的字节码文件存放在bin目录下。
接下来是jar指令,用于创建Java程序的可执行JAR文件。
示例代码如下:```xml<jar destfile="./dist/myapp.jar"><fileset dir="./bin" includes="**/*.class" /><fileset dir="./lib" includes="**/*.jar" /></jar>```上述指令将bin目录下的所有类文件和lib目录下的所有JAR文件打包成一个名为myapp.jar的JAR文件,并将其存放在dist目录下。
除了编译和打包,Ant还提供了许多其他有用的指令。
例如,copy指令可以用来复制文件或目录:```xml<copy file="./src/test.txt" todir="./dist" />```上述指令将src目录下的test.txt文件复制到dist目录下。
使用 Apache Ant如果您使用的不是Eclipse和Eclipse Google 插件,则可能要通过其他方式来管理 App Engine 应用程序的生成和测试过程。
使用Apache Ant可轻松地通过命令行或其他适用于 Ant 的 IDE 对项目进行管理。
Java SDK 包含一组 Ant 宏,用来执行常规的 App Engine 开发任务,包括启动开发服务器以及将应用程序上传到 App Engine。
本文介绍了一种对大多数项目都很有用的 Ant 生成文件。
要跳过说明直接转至用于复制粘贴的完整文件,请参阅完整的生成文件。
∙安装 Ant∙项目目录∙创建生成文件∙定义类路径∙增强 JDO 类∙运行开发服务器∙上传以及其他 AppCfg 任务∙完整的生成文件如果您的系统尚未安装 Ant,请访问Apache Ant 网站进行下载并安装。
当安装完 Ant 后命令路径上出现 ant 命令时,即可运行以下命令,以验证它能否正常工作并查看所安装的版本:ant -version如使用入门指南中所述,您的 App Engine 项目必须使用针对 Java 网络应用程序的WAR标准布局生成目录结构。
(SDK 目前尚不支持 WAR 档案文件。
)为此,我们将把所有与项目相关的文件放入名为 Guestbook/ 的单独目录中(对于使用入门指南中所述的留言簿项目),其中名为 src/ 的子目录用于存放 Java 源代码,而名为 war/ 的子目录用于存放已完成的应用程序文件。
生成过程将编译源代码,并将经过编译的 Java 字节代码放入 war/ 下的适当位置。
您将直接在 war/ 目录下创建其他 WAR 文件。
完整的项目目录应如下所示:Guestbook/src/...Java source code...META-INF/...other configuration...war/...JSPs, images, data files...WEB-INF/...app configuration...classes/piled classes...lib/...JARs for libraries...要通过命令提示符创建此目录结构,请使用下列命令。
linux ant用法Ant是一种流行的自动化构建工具,用于构建、测试和部署软件项目。
在Linux环境中使用Ant可以帮助您更高效地管理软件开发过程。
下面将介绍如何使用Ant在Linux上构建和运行项目。
一、安装Ant首先,您需要在Linux系统上安装Ant。
您可以从官方网站下载适用于您的Linux发行版的Ant版本,并按照安装指南进行安装。
安装完成后,您可以使用命令行工具来验证Ant是否已正确安装。
二、创建构建文件在项目根目录下创建一个名为“build.xml”的构建文件,该文件将包含您的项目配置和构建脚本。
构建文件使用XML格式编写,其中包含一组XML标签和属性,用于定义构建过程中的不同阶段。
三、配置构建文件构建文件中的XML标签定义了各种构建任务,如编译代码、运行测试、打包项目等。
通过配置这些任务,您可以指定相应的执行顺序和依赖关系。
例如,以下是一个简单的build.xml文件示例,用于编译Java项目:```php<projectname="myproject"default="dist"><targetname="compile"><mkdirdir="dist"/><javacsrcdir="src"destdir="dist"/></target></project>```在这个示例中,我们定义了一个名为“compile”的目标,它将在“src”目录下编译Java源代码,并将编译后的类文件输出到“dist”目录中。
四、运行构建任务要运行构建任务,您可以使用Ant命令行工具或构建工具(如Maven)来执行build.xml文件中的任务。
例如,要编译Java项目并运行测试,您可以使用以下命令:```shellantcompiletest```这将根据build.xml文件中的配置执行相应的构建任务,并输出构建过程中的任何错误或警告信息。
这一篇主要介绍与java相关标签的使用终于始重头戏了,Java部分们的重也中用处最多的部分。
1. <javac>编译java源文件成class文件。
<javac srcdir="${src}" destdir="${dest}" encoding="utf-8"bootclasspathref="project.classpath" includejavaruntime="true" includeantruntime="false" optimize="true" source="1.6" target="1.6"/>(1). srcdir:java源文件的文件夹,也可以在内部嵌套<src>标签(2). destdir:用于存放编译后class文件的文件夹,默认当前文件夹。
(3). includes:必须包括的文件模式的列表,以逗号或空格分隔。
如果忽略,将包括所有文件。
(4). includesfile:指定一个包含很多include的文件,同样可以用通配符来指定。
(5). excludes:必须排除的文件模式的列表,以逗号或空格分隔。
如果忽略,将不排除任何文件。
(6). excludesfile:指定一个包含很多exclude的文件,同样可以用通配符来指定。
(7). classpath: 编译所使用的classpath(8). sourcepath: 指定源资源文件夹。
默认指向srcdir(9). bootclasspath: 启动时设置classpath(10). classpathref:引用其他classpath(11). sourcepathref:引用其他源文件目录(12). bootclasspathref:启动时引用其他classpath设置(13). extdirs:扩展文件的路径。
(14). encoding:编码格式(15). nowarn:忽略警告信息(16). debug:否产生调试信息,默认off。
(17). debuglevel:debug级别(18). optimize:指出否应该用优化编译源代码,默认为 off。
(19). deprecation:否给出不建议使用的API,默认值false。
(20). target:根据特定的vm版本生成class文件(21). verbose:要求编译器输出详细信息,默认no。
(22). depend:当运行这个任务时,首先按照顺序依次执行完依赖的任务,如果出错将停止执行。
(23. includeAntRuntime:指出否应在类路径中包括 Ant 运行时程序库,默认为yes。
(24). includeJavaRuntime:指出否应在类路径中包括来自执行 VM 的默认运行时程序库,默认为 no。
(25). fork:否执行外部的javac,默认no。
(26). executable:当fork="yes"时,所执行的javac的完整路径。
默认的当前跑ant的java版本,fork="no"就忽略(27). memoryInitialSize:当外部javac的时候,获得基本vm的初始内存小。
否则忽略。
(28). memoryMaximumSize:同上只不过获得的内存小。
(29). failonerror: Ant 任务在出现编译的情况下否继续执行,默认值为 True。
(30). errorProperty:当编译失败的时候要设置的属性。
(31). source:命令行-source的关。
假如设置为1.4,将激活断言。
默认1.3。
默认不使用-source。
(32). piler:设置用来选择编译器,如果不设置,将使用默认的编译器。
(33). listfiles:否显示被编译文件列表,默认no。
(34). tempdir:指定存放临时文件的地方,这个只在设置了fork和命令行超过参数长度超过4k的时候使用,默认为java.io.tmpdir(35). updatedProperty:更新property属性(36). includeDestClasses:否包含目标class文件夹包含到classpath。
默认true。
意思之前生成的class文件自动加到classpath。
一些实例:1). 将${src}下的java文件编译到${dest}中,classpath中包括log4j.jar包,并显示调试信息,source1.6<javac srcdir="${src}" destdir="${dest}" classpath="log4j.jar" debug="on"source="1.6" target="1.6" />2). 将${src}下的java文件编译到${dest}中,使用外部的javac。
source的等级1.6,并且class文件根据jdk1.6版本生成<javac srcdir="${src}" destdir="${dest}" fork="true" source="1.6" target="1.6" />3). 此例同上,只使用fork指定executable的javac名称为 java$javac.exe<javac srcdir="${src}" destdir="${dest}" fork="java$$javac.exe" source="1.6" target="1.6" />4). 将${src}下的java文件编译到${dest}中,且只包含package下的java文件,并排除test下的所有文件<javac srcdir="${src}" destdir="${dest}" includes="package/**"excludes="package/test/**" classpath="log4j.jar" />5). 指定javac程序编译源文件,javac文件位置:/usr/local/java/jdk/bin/javac<javac srcdir="${src}" destdir="${dest}" fork="true"executable="/usr/local/java/jdk/bin/javac" piler="javac1.1" />6). 使用指定的CompilerAdapter<javac srcdir="${src}" destdir="${dest}" piler=".myproject.MyAdapter"/>或<ponentdef classname=".myproject.MyAdapter" name="myadapter" /><javac srcdir="${src}" destdir="${dest}"><myadapter/></javac>2.<java>用来运行编译好的class文件,命令比较简单,结合javac的属性解释一看就懂了。
<java timeout="30" args="1,2,3" classname=".test.ant.HelloAnt"classpath="${classPath}" />java既可以运行class文件又可以运行jar文件,只需要相应配置即可:<java classname=".ant.hello.HelloAnt" classpath="${hello_jar}" /><java classname="test.Main"><arg value="-h" /></java>3.<jar>(1)打包成jar文件,jar命令们经常要使用的,们会将打包成相应的jar包分发到各系统上。
1.<jar jarfile="${hello_jar}" basedir="${dest}" />2.<jar destfile="${dist}/hello.jar" basedir="${dest}" includes="/test/ant/**" excludes="**/*_Temp.class" />(2)打包成可运行jar文件,即指定该jar文件的main函数。
1.<jar destfile="${dist}/hello.jar" basedir="${dest}"manifest="${dir}/MANIFEST.MF"/>2.<jar destfile="${dist}/hello.jar" filesetmanifest="mergewithoutmain"><manifest><attribute name="Built-By" value="${}"/><attribute name="Main-Class" value=".ant.hello.HelloAnt"/><attribute name="Class-Path" value="."/></manifest><fileset dir="${dest}"/></jar>1中需要在dir目录下新建一个MANIFEST.MF文件,在默认打包时未设置manifest属性的话系统会自动。