admin管理员组文章数量:1559112
0 前言
全是干货的技术殿堂
文章收录在我的 github 仓库,欢迎star/fork:
java-interview-tutorial
https://github/wasabi1234/java-interview-tutorial
apache ant 是由 java 语言开发的工具,由 apache 软件基金会所提供。apache ant 的配置文件写成 xml 容易维护和书写,而且结构很清晰。
1 简介
ant 是一个 apache 基金会下的跨平台的基于 java 语言开发的构件工具。在我们详细了解 apache ant 之前, 让我们来讲解为什么构建工具是需要最先了解的。
构建工具的需求
一般情况,开发人员花费大量的时间做一般性的任务,比如:构建和部署,通常包含下面的工作:
编译代码
封装二进制文件
在测试服务器上部署二进制文件
测试改变
从一个地点拷贝代码到另一个地点
为了自动和简化上面的工作,apache ant 是非常有用的。这是一个基于开放的操作系统构建和部署的工具,该工具需要从命令行执行。
apache ant 的历史
ant 是由 james duncan davidson 开发的(也就是 tomcat 最初的开发者)。
最初是用来构建 tomcat,被作为一个 tomcat 的发行版的一部分。
apach make 工具包的复杂性与诸多问题催生了 apache ant。
在 2000 年的时候,ant 被作为一个独立的项目。最新的 apache ant 版本是 2014 年 5 月的 1.9.4 版本。
apache ant 的特点
ant 是最完整的基于 java 语言开发的构建和部署工具。
ant 具有平台无关性,可以处理平台特有的属性,诸如文件分隔符。
ant 还可以用来执行平台特有的任务,比如使用 touch 命令修改一个文件的修改时间。
ant 脚本是用 xml 来完成的。如果你已经对 xml 有所了解,那么你学习 ant,将会比较得心应手。
ant 擅长自动完成重复任务。
ant 开始需要一系列的预先定义好的任务。
ant 提供了开发自定义任务的接口。
ant 可以很容易从命令行调用,并且它能够很好地集成免费和商用的集成开发环境。
2 下载与安装
2.1 homebrew
打开mac上的终端,并输入下面的命令,然后回车:
brew install ant
就装好ant了。
2.2 九游会真人第一品牌官网下载配置
让配置生效
source ~/.bash_profile
验证配置成功
- ant -version
3 构建文件
一般来说,ant 的构建文件默认为 build.xml,放在项目顶层目录中。然而,并没有限制构建文件必须命名为 bulid.xml,也并不限制放在项目顶层目录中。你可以将构建文件命名为其他名字,也可以将它放在项目的其他地方。
这个教程将以简单的方式向你展示如何利用 apache ant 来自动地构建和部署项目的过程。在完成本教程的学习以后,你将会发现你已经具备下一阶段学习 apache ant 中等水平的专业知识 。
对于下面的练习,创建一个文件命名为 build.xml 的文件,存储在你电脑的任意地方 ,并包含一下的内容:
<project name="hello world project" default="info">
<target name="info">
<echo>hello world - welcome to apache ant!echo>
target>
project>
注意到上面的练习中,在 xml 文件的声明前面没有任何空行或者空格。如果你在写 xml 文件的声明时加入了空行或者空格,执行 ant -build 操作时,将会出现下面的错误信息:
the processing instruction target matching “[xx][mm][ll]” is not allowed.
错误信息的意思是:处理指令目标匹配 “[xx][mm][ll]” 不被允许。所有的构建文件需要包含项目元素 (project 标签) 和至少一个目标元素 (target 标签)。
构建文件的项目元素 有 3 个属性:
目标和目标之间可以有依赖关系。举个例子,一个部署 (deploy) 目标可能依赖于封装 (package) 目标,而这个封装目标可能又依赖于编译 (compile) 目标等。依赖关系被表示成依赖属性 (depends)。例如:
<target name="deploy" depends="package">
....
target>
<target name="package" depends="clean,compile">
....
target>
<target name="clean" >
....
target>
<target name="compile" >
....
target>
构建文件的目标元素有以下属性:
在上面的例子中 echo 任务主要负责打印消息。在我们的例子中,执行 echo 任务后,打印出 “hello world” 消息。
为了运行 ant 的构建文件,打开命令提示符并导航到 build.xml 建立的文件夹。输入 ant info 命令或者 ant 命令。这两种命令都可以运行,因为 info 是构建文件的默认目标。你讲会看到下面的输出信息:
c:>ant
buildfile: c:\build.xml
info: [echo] hello world - welcome to apache ant!
build successful
total time: 0 seconds
c:>
4 构建项目
现在我们已经学习了 ant 的数据类型,是时候在实际过程中运用所学知识了。在这一章节中,我们将会构建一个项目。这一章节的目的是创建一个 ant build 文件,该文件能够编译 java 源文件和将这些类文件存储在 web-inf\classes 文件夹下。
考虑接下来构建项目的结构:
数据脚本存储在 db 文件夹中。
java 源文件存储在 src 文件夹中。
images (图像),js (javascript 脚本),style (css 层叠样式表)存储在 war 文件夹中。
jsps 文件存储在 jsp 文件夹中。
第三方的 jar 文件存储在 lib 文件夹中。
java 类文件存储在 web-inf\classes 文件夹中。
学习完本教程的剩余部分后,就能知道这个项目是一个 hello world 传真应用。
c:\work\faxwebapplication>tree
folder path listing
volume serial number is 00740061 ec1c:adb1
c:.
---db
---src
. ---faxapp
. ---dao
. ---entity
. ---util
. ---web
---war
---images
---js
---meta-inf
---styles
---web-inf
---classes
---jsp
---lib
下面给出上述项目的 build.xml 文件的内容。让我们来一条语句接一条语句地来分析它。
<project name="fax" basedir="." default="build">
<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="${web.dir}/web-inf/classes"/>
<property name="name" value="fax"/>
<path id="master-classpath">
<fileset dir="${web.dir}/web-inf/lib">
<include name="*.jar"/>
fileset>
<pathelement path="${build.dir}"/>
path>
<target name="build" description="compile source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.5" target="1.5">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
javac>
target>
<target name="clean" description="clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
fileset>
delete>
target>
project>
首先,让我们来声明一些源文件,web 文件和构建文件的一些属性信息。
在上面的例子中:src.dir 表示这个项目的源文件目录,也就是存储 java 文件的地方。
web.dir 表示这个项目的 web 文件目录,也就是存储 jsps 文件,web.xml,css,javascript 以及其它与 web 相关的文件的地方。
build.dir 表示该项目的输出文件。
属性也可以引用其它属性。在上面的例子中,build.dir 属性引用了 web.dir 属性。
在上面的例子中,src.dir 就是项目源文件存放的地方。
我们项目的默认目标是编译目标。但是首先让我们来看一下 clean 目标。
clean 目标,就像它的名字所表明的意思一样,删除构建文件夹中的所有文件。
<target name="clean" description="clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
fileset>
delete>
target>
控制类路径 (master-classpath) 保存类路径的相关信息。在这种情况下,它包含了构建文件夹和 jar 文件夹中的所有的类文件。
<path id="master-classpath">
<fileset dir="${web.dir}/web-inf/lib">
<include name="*.jar"/>
fileset>
<pathelement path="${build.dir}"/>
path>
最后,构建目标构建这些文件。首先,我们创建一个构建目录,如果该目录不存在,我们就执行 javac 命令(具体以 jdk 1.5 作为我们目标的编译环境)。 我们对 javac 任务提供源文件夹和类路径,并且通过执行 javac 任务将类文件存放在构建文件夹中。
<target name="build" description="compile main source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}"/>
<classpath refid="master-classpath"/>
javac>
target>
在这个文件上执行 ant,编译 java 源文件,并将编译后的类文件存放在构建文件夹的地方。
运行 ant 文件后,能看到以下输出:
c:>ant
buildfile: c:\build.xml
build successful
total time: 6.3 seconds
文件被编译后,将存储在 build.dir 文件夹中。
避坑
- 注意这里设置了 jdk 的版本,注意和代码版本的对齐!
本文标签:
j9九游会老哥俱乐部交流区的版权声明:本文标题:ant下载安装及使用详解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727358879a1110385.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论