ant实践入门
关键字: ant
问题的提出:
Ant(蚂蚁是搬东西的):编译,打包,配置,部署。
这些命令如果一个个地写很麻烦,而且不可以重用,能不能把一个动态的过程描述成一个静态的步骤。
于是,我们想到用一个批处理命令文件,但是如果用.sh和.bat则不可以跨平台,但是如果用ant则可以跨平台。
Ant为了做到跨平台,一个是跨操作系统,另一个是跨IDE,Ant首先抽象出一个中间语言,这个语言是基于xml的。
然后,用Ant执行器来解析该xml描述的操作,并最终和操作系统的批处理命令对应起来。当然,对于ftp这样的外部命令,
可以由第三方插件来支持。
Ant是Apache组织负责开发和维护的,Ant的许多第三方插件也是Apache支持的,比如ftp任务。
http://jakarta.apache.org/ant
Ant的基本任务
常用的内置任务:javac java jar war copy delete mkdir move tstamp
1、java应用程序相关的
【编译】
<javac srcdir="myproject/mysrc" destdir="classes" /> 将源代码编译输出的classes类文件输出到哪。
我们能不能只选择具有某些特性的源代码才编译呢?或者编译的时候,我们要依赖于第三方的一些库呢?
<javac srcdir="myproject/mysrc" destdir="classes" excludes/includes="mypackage/**" classpath="mylib.jar"/>
【运行】
<java classname="textMyTest">
<java classname="testMyTest" classpath="tester.jar" fork="yes">
由于build.xml是由ant来执行的,解析ant要用一个jvm;那么运行的程序可在同一个jvm,也可以单独一个jvm。
fork=yes是不同的jvm。
<java classname="testMyTest">
<classpath>
<pathelement path="myproject/classes">
<pathelement location="mylib/lib.jar">
</classpath>
//classpath这个复合节点,很明朗地让我们明白了java中的常见classpath,一种是基于目录的(比如classes目录),另一种是基于.jar文件的。
//分别对应pathelement path="目录" pathelement location=".jar"
</java>
【打包 jar】
<jar jarfile="myjar.jar" basedir="myproject/root" />
<jar jarfile="myjar.jar" basedir="myproject/root" excludes="*.html" update="yes"/>
<jar jarfile="myjar.jar" basedir="myproject/root" compress="false" /> //是否使用压缩形式
【打包 war】
2、操作文件系统
<copy file="myfile.txt" tofile="root/WEB-INF/web.xml" />
<copy file="myfile.txt" tofile="root/WEB-INF/web.xml" overWrite="yes" />
<delete file="myfile.jar" />
<delete dir="myproject/temp" />
3、资源的集合
FileSets和PatternSets
<patternset> 元素定义一个符合条件的资源的集合。(利用正则表达式来进行过滤)
<fileset> 元素定义一个相对于基本目录的资源集合。
<patternset id="javaFiles">
<include name="**/*.java"> (定义所有的java源文件,无论是哪个目录,包括当前目录及其子目录)
</patternset>
<fileset dir ="myproject/src">
<patternset refid="javaFiles"> (用fileset来指定基本目录,然后用patternset来过滤基本目录及其子目录满足条件的文件)
</fileset>
4、应用fileset和patternset
<jar jarfile="mylib.jar">
<fileset dir="myproject/classes" />
<fileset dir="myproject/bin">
//可以从一个或多个fileset中创建jar
</jar>
<delete>
<fileset dir=".">
<patternset refid="classonly" />
</fileset>
</delete>
<copy todir="../app">
<fileset dir="myproject/root">
<patternset>
<exculude name="**/*.java">
</patternset>
</fileset>
</copy>
5、
<ant dir="myproject" /> 则选择缺省的build.xml文件;
<ant dir="myproject" antfile="c:/test/mybuild.xml" /> 专门指定了build文件。
6、实例
<project name="myWebApp" default="deploy" basedir=".">
<property name="webHome" value="c:\beta\weblogic" />
<property name="domain" value="mydomain" />
<target name="compile">
<mkdir dir="classes" /> //编译所有的java代码,当然有时我们可以排除单元测试的
<javac srcdir="src" destdir="classes" />
</target>
<target name="layout" depends="compile"> //编译完后部署到web服务器上去
<mkdir dir="temp/WEB-INF/classes" />
<copy todir="temp/WEB-INF/classes">
<fileset dir="classes"> //使用fileset和patternset来定义资源集合
</copy>
<copy todir="webroot">
<fileset dir="webroot" />
</copy>
</target>
<target name="archive" depends="layout">
<jar jarfile="musite.war" basedir="temp" />
<delete dir="classes" />
<delete dir="temp" />
</target>
</project>
分享到:
相关推荐
Apache Ant 是一个开源的构建工具,广泛用于Java项目构建,由Apache软件基金会开发。这个"apache-ant-1.6.5-bin.zip"文件是Ant的1.6.5版本的二进制发行版,适合在Windows操作系统上使用。Ant是基于Java的,它的主要...
org.apache.tools.ant.Main org.apache.tools.ant.Task org.apache.tools.bzip2.CRC org.apache.tools.ant.Target org.apache.tools.ant.Project org.apache.tools.zip.ZipFile org.apache.tools.zip.ZipLong ...
开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6...
"Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...
Axure AntDesign元件库是一款专为Axure设计的高质量组件集合,它旨在帮助原型设计师快速构建基于AntDesign设计系统的Web应用界面。AntDesign是阿里巴巴开源的一款著名前端UI框架,以其优雅、直观、高效的特性广受...
ANT+协议是一种无线通信协议,主要用于运动健康和健身设备之间的数据传输。该协议由Garmin公司开发,并在开放源码的基础上推广,使得不同厂商的设备能够无缝共享数据,如心率、速度、距离等运动参数。VS2015源文件指...
《AntDesign3.9Axure组件:原型设计的利器》 在互联网产品开发流程中,原型设计是一个至关重要的环节,它能清晰地呈现产品的功能结构和交互方式,为后续的开发工作提供明确的方向。AntDesign3.9Axure组件正是这样一...
在给定的文件中,`apache-ant-1.9.4-bin.zip`是Ant的一个版本,你需要解压并将其添加到系统路径中,这样命令行就可以识别`ant`命令了。安装完成后,确保你的环境配置正确,包括Android SDK和相关的环境变量(如`...
Apache Ant 是一个开源的构建工具,广泛用于Java项目管理,它是Apache软件基金会的产品之一。Ant以其XML为基础的构建文件(build.xml)而著名,这种文件定义了构建过程中的任务序列,使得开发人员能够自动化编译、...
"ant-design-demos" 是一个基于Ant Design框架的示例集合,主要展示了Ant Design的各种组件和功能在实际应用中的使用方式。Ant Design是一款由阿里集团开发的高质量React UI库,它提供了一系列美观、易用且具有企业...
**Ant Design Axure设计库详解** Ant Design是一个广泛使用的开源UI设计框架,源自阿里巴巴集团,专为构建高效、稳定且具有良好用户体验的Web应用而设计。它提供了丰富的组件库,覆盖了网页界面设计的各个方面,...
Apache Ant 1.10.13-bin是Apache Ant的一个二进制分发版本。Apache Ant是一个由Apache软件基金会提供的Java库与命令行工具,主要用于自动化软件编译、测试、部署等步骤,尤其在Java环境中的软件开发中广泛应用。其...
Apache Ant是Java开发中不可或缺的构建工具,它以其灵活性、可扩展性和跨平台特性而闻名。标题中的"ant1.9包下载"指的是Apache Ant 1.9系列的版本,这是该工具的一个重要里程碑,提供了许多增强的功能和修复了已知...
Apache Ant 是一个由Apache软件基金会开发的Java库和命令行工具,其设计目的是驱动构建过程。这个工具的名字“Ant”来源于“蚂蚁”,象征着它在软件工程中的小而有力的角色,能够处理各种复杂的构建任务。在Java开发...
Apache Ant 是一个开源的构建工具,广泛用于Java项目,它基于XML来定义构建过程,使得构建脚本具有可读性强、可复用性高的特点。标题中的"apache-ant-1.9.9.zip"表明这是一个包含Apache Ant 1.9.9版本的压缩文件,...
标签中的"ant_1", "ant_1.6", "ant_1.6.0", "ant-1.6.0"和"apache-ant-1.6"都指的是Apache Ant的不同版本,1.6.0是其中的一个稳定版本,发布于2003年,提供了许多改进和新特性,比如支持JUnit 3.8,对ivy依赖管理...
Apache Ant 是一个开源的构建工具,它主要用于Java项目构建、自动化任务执行,如编译、打包、测试和部署。在Java开发中,Ant以其XML格式的构建文件(build.xml)著称,允许开发者定义项目构建的步骤和依赖关系。...
《Ant Design Library 3.0 与 Axure 组件库详解》 Ant Design Library 3.0 是一款专为Axure设计的组件库,旨在帮助设计师高效、精准地构建高质量的原型。Ant Design,源自阿里巴巴的前端框架,以其优雅的设计风格和...
### ANT文件详解:深入理解ANT及其在项目构建中的应用 #### Ant的概念与起源 Ant,全称为Apache Ant,是一款开源的、跨平台的项目构建工具,最初由James Duncan Davidson开发,现归属于Apache软件基金会Jakarta...
Apache Ant是Java开发中的一个构建工具,用于自动化项目构建过程,比如编译、打包、测试等任务。在标题中提到的"apache-ant-1.10.5.rar"是一个包含Ant 1.10.5版本的压缩文件。这个版本的Ant是在2019年发布的一个稳定...