问题的提出:
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>
分享到:
相关推荐
《Ant入门》是一本专为初学者设计的电子书,主要涵盖了Apache Ant这一构建工具的基础知识和使用方法。Ant是Java开发中广泛使用的自动化构建工具,由Apache软件基金会开发,其设计目标是简化项目构建过程,使开发者...
Ant是Apache软件基金会下的一个Java构建...总之,这个"Ant入门资料(完整版)"是一套全面的学习资源,涵盖了理论知识、实例演示和实践操作,旨在帮助初学者快速掌握Ant工具,从而在实际开发工作中发挥出它的强大效能。
Apache Ant 是一个由Java开发的开源构建工具,它在软件工程中被广泛用于自动化构建、测试和部署Java项目。...通过阅读`ant入门.pdf`和实践`code.zip`中的示例,你可以快速入门并掌握Ant的基础知识。
总的来说,“ant入门小实例练习”是一个很好的起点,通过实践可以让你快速掌握Ant的基本操作,为后续更复杂的Java项目构建打下坚实的基础。在实践中,你还可以学习如何利用Ant管理依赖、执行单元测试、构建Web应用,...
以上就是Ant入门的一些基本知识点,通过这个“myant01”实例,你可以动手实践这些概念,逐步熟悉Ant的工作方式。随着经验的积累,你会发现Ant是一个强大且灵活的构建工具,能够满足各种复杂的项目构建需求。
Ant Design和Ant Design Pro是两个广泛应用于前端开发的UI框架,...通过深入学习和实践“day02-Ant Design以及Ant Design Pro入门”教程,你将能够更好地理解和运用这两个框架,为自己的项目带来专业且高效的解决方案。
Apache Ant 是一个强大的Java项目构建工具,它被广泛应用于软件开发流程中,特别是在处理复杂的构建过程时。Ant基于XML来定义构建任务,...通过不断实践和学习,你可以掌握如何编写复杂的Ant脚本来满足不同项目的需求。
Apache Ant 是一个基于 Java 的构建工具,由 James Duncan Davidson 创建,其名称源于“another neat tool”...通过实践教程中的示例,您将能够更好地理解和应用 Ant 的各种功能,从而提升您的开发效率和项目管理能力。
### Ant使用指南-Ant入门手册 #### 一、Ant是什么? Apache Ant 是一款开源的 Java 构建工具,它的名字来源于...通过持续实践和学习,你将能够充分利用 Ant 的全部潜力,为你的 Java 项目带来更多的自动化和灵活性。
Ant是Apache软件基金会下的一个...通过观看"Ant入门讲解视频",你可以进一步了解Ant的使用方法和实践案例,结合文档`Ant 入门讲解视频(22分03秒).doc`深入学习,配合`ant.exe`进行实际操作,快速掌握Ant的基本技能。
【标题】"start ant 1 ant 入门"指的是学习和使用Apache Ant构建工具的基础教程,这通常涉及Java项目自动化构建的过程。 【描述】"例子 rar"可能是指该资源包含了一个示例的RAR文件,RAR是一种常见的压缩格式,用于...
通过学习和实践这些Ant的基本概念和高级特性,你将能够有效地管理Java项目的构建过程,提高开发效率,同时为团队协作和持续集成打下坚实的基础。无论你是Java新手还是经验丰富的开发者,Ant都是一个值得掌握的重要...
这个名为"Ant Design以及Ant Design Pro入门.zip"的压缩包文件包含了学习这两个框架的基础资源,包括代码示例、相关资料和讲义,旨在帮助初学者快速掌握ReactJS、Ant Design和Ant Design Pro的基本用法。 ReactJS是...
通过分析和实践这个入门Demo,你可以逐步掌握Ant Design Pro的使用,并将其应用于实际项目中,提升你的前端开发能力。记得不断查阅官方文档,同时参与社区讨论,以便及时获取最新的开发技巧和最佳实践。
### Ant入门与进阶知识点概览 #### 一、Ant简介 **Ant** 是一个流行的构建工具,主要用于Java项目的构建过程。它通过一系列预定义的任务来执行自动化构建流程,简化了开发人员的工作负担。Ant的核心优势在于其跨...
### ANT入门与提高:构建自动化之旅 #### 一、ANT的背景与起源 Apache ANT,一个开源的Java库和命令行工具,旨在提供强大的构建能力,适用于任何类型的Java项目。它的设计初衷是为了替代传统的Unix shell脚本和...