当前位置:文档之家› 《Java学习笔记 良葛格》 fuluA word版

《Java学习笔记 良葛格》 fuluA word版

《Java学习笔记 良葛格》 fuluA  word版
《Java学习笔记 良葛格》 fuluA  word版

《Java学习笔记良葛格》 fuluA word版

介 Ant 简

A

Ant 的全名是 Another Neat Tool,是由 James Duncan Davidson 在觉得Make 工具无法满足他的 Java 构建(Build)需求下所编写出来的工具,目前由Apache Software Foundation 持续进行开发。根据官方网站上的 FAQ 中有关什么是 Apache Ant(What is Apache Ant)中的回答:

Ant is a Java-based build tool. In theory, it is kind of like Make, without Make’s wrinkles and with the full portability of pure Java code.

简单地说,Ant 就像是 Make 工具,一个为 Java 应用程序所量身定做的构建工具。

A.1 Ant 设置

对于没有使用过 Make 工具的初学者来说,想象一下如何管理源代码?如何处理 Classpath 的问题?如何将编译过后的文件指定至某个目录?如何

将.class 包装为 .jar 文件?……

这一切都可以通过 Ant 来完成!您不必重复地使用 javac、copy、cd 和

java 等指令来达到这些目的,只要编写好一个以 XML 组织的构建文件(buildfile),然后下 ant 指令,上述所有的问题就可轻松地解决。

或许有人会说这些需求一些 IDE 也可以办到,这并不是正确的说法。Ant 并不取代 IDE,它增强了 IDE,也没有 IDE 可以取代 Ant,它们是互补的,不是相互取代的。

简单地归纳一下 Ant 可以自动完成的任务:

编译 Java 源代码

建立 jar、 war、zip 文件

自动测试与生成报告

从 CVS 等管理系统取得源代码

可以先到以下的网站取得一些信息:

Ant 官方网站 ()

Ant 使用者手册 ()

下面介绍如何设定 Ant。在下载 Ant 之后,将压缩文件解压缩至想要的目录,假设是 C:\develop\apache-ant。

在 Windows 2000/XP 下可以选择桌面上的“我的电脑”并按鼠标右键,选择“属性”后切换至“高级”页面,并单击下方的“环境变量”按钮,在“环境变量”对话框的“系统变量”中单击“新建”按钮,新建 java_home 变量,如图 A-1 所示。

图 A-1 新建 java_home 变量

464

A Ant 简介

其中变量值必须根据实际安装 JDK 的目录来决定。按照相同的方式再新建

ant_home 变量,并设定变量值为 Ant 的目录,这里假设是 C:\develop\apache-ant。最后编辑 path 变量,加入 Ant 的 bin 目录,如图 A-2 所示。

图 A-2 编辑 path 加入 Ant 的 bin 目录

A.2 第一个 Ant 构建

Ant 通过 buildfile 来进行构建,它是一个 XML 文件,默认命名为

build.xml。

在 Ant 的 buildfile 中可以定义构建项目时的属性(Property)、任务(Task)。一个 build.xml 中可以定义多个任务,这些任务可能是建立目录、编译Java 源代码、复制文件、删除文件、产生 doc 文件、进行测试、产生测试报告等,它们通常组织为一个目标(Target)。

这里以一个简单的 HelloWorld 程序来示范如何建立 buildfile,并大致了解属性、任务与目标的作用。虽然 HelloWorld 程序使用 Ant 来构建过于夸张,但可以作为一个快速了解 Ant 的例子。先在 C:\workspace\HelloWorld\src 目录中编辑文件:

HelloWorld.java

package onlyfun.caterpillar;

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World!!");

}

}

接着描述一下即将进行的工作。假设打算要编译 src 中的

HelloWorld.java,编译后的.class 将保存至

C:\workspace\HelloWorld\classes 目录中,如果 classes 目录不存在就建立它,每一次编译前将 bin 中前一次编译的 .class 复制到

C:\workspace\HelloWorld\bak 目录作备份,如果 bak 目录不存在就建立它,最后执行 HelloWorld 程序。

465

在 C:\workspace\HelloWorld 下编辑 build.xml 如下:

build.xml

中包括数个,每一个 有一个名称,默认

的进入点为 run 任务,而 run 任务的完成依赖于 compile 任务的完成, compile 任务的完成依赖于 prepare 任务的完成。所以在构建开始时,会先执行 prepare 任务,完成后再执行 compile 任务,最后执行 run 任务。

标签可以让您设定一些在构建项目时的常用属性值,每一个属性值会有一个名称对应。以这个例子而言,设定了程序代码来源位置、编译结果的目标目录与备份目录。

一个构建中可以包括数个,在这个例子中主要有 3 个:编译前的准备工作、进行编译、执行。在编译之前先建立所需要的目录,如果目

466

A Ant 简介

录已经存在就自动跳过该项工作,然后复制前一次编译的.class 文件至 bak 目录。接下来进行编译,可以指定编译的源文件来源与目标,然后执行程序。

编辑好 build.xml 之后,在文字模式下直接执行 ant 指令即可开始构建项目, ant 默认会读取同一个目录下的 build.xml。第一次执行 ant 时会出现以下的文字提示构建过程:

C:\workspace\HelloWorld>ant

Buildfile: build.xml

prepare:

[mkdir] Created dir: C:\workspace\HelloWorld\classes

[mkdir] Created dir: C:\workspace\HelloWorld\bak

compile:

[javac] Compiling 1 source file to C:\workspace\HelloWorld\classes run:

[java] Hello World!!

BUILD SUCCESSFUL

Total time: 5 seconds

完成构建之后,会自动产生 classes 目录与 bak 目录,如图 A-3 所示。

图 A-3 Ant 会自动完成指定的任务

classes 目录中会有.class 文件,由于是第一次构建,所以 bak 目录中目前没有任何文件。现在假设修改了 HelloWorld.java 并存盘,接下来再次执行 ant 指令。这次出现以下的文字提示构建过程:

C:\workspace\HelloWorld>ant

467

Buildfile: build.xml

prepare:

[copy] Copying 1 file to C:\workspace\HelloWorld\bak

compile:

[javac] Compiling 1 source file to C:\workspace\HelloWorld\classes run:

[java] Hello Java!!

BUILD SUCCESSFUL

Total time: 1 second

这次由于 classes 与 bak 目录已经存在,就不用再进行新建目录的工作。ant 检查 classes 中有之前构建的文件,于是将它复制到 bak 目录中。

如果打算单独执行某个任务,则在执行 ant 指令时写出指定的任务名即可。例如:

C:\workspace\HelloWorld>ant compile

Buildfile: build.xml

prepare:

compile:

[javac] Compiling 1 source file to C:\workspace\HelloWorld\classes BUILD SUCCESSFUL

Total time: 1 second

A.3 任务(Target)

在构建程序时,有些目标所定义的任务可能是可选的,您可以通过在设定

时设定一个条件,并在构建时指定该条件为 true 或 false,以决定该目标是否要执行。例如可以这么设定:

some task...

使用 if 设定条件目标时,表示只有在 conditional 被设置时才会被执行。在执行 ant 指令时,就可以像下面这样来决定 someTarget 是否要执行:

468

A Ant 简介

ant -buildfile build.xml -Dconditional=true

也可以使用 unless 来设定条件目标:

some task...

由于使用了 unless 来设定条件目标,所以只有在 conditional 没有被设定时,

目标才会被执行。

由于 ant 可以在一个 buildfile 中调用另一个 buildfile,在调用的时候,两

个 buildfile 之间可能会有一些重复的属性设定。如果要避免某个属性被重复设

定了,可以这么编写:

...

可以在一个 buildfile 中调用另一个 buildfile。一个简单的例子如下:

...

...

中设定 value 为 true,当在另一个 buildfile 中有目标使用了条

件式 (if 或 unless)时,这可以给予该条件一个 true 的特性值。

由于默认的 buildfile 名称是 build.xml,所以也可以只指定项目的目录来调

用默认的 build.xml。例如:

...

...

469

也可以仅仅调用另一个 buildfile 中的某个目标。例如:

A.4 属性(Property)

可以使用 标签来定义属性。例如:

属性都是由 name/value 组成的,如果在执行时没有特别指定属性值,则默认使用 value 上定义的值,如果要指定某个属性,则可以执行 ant。例如指定classes.dir:

ant -Dclasses.dir="WEB-INF/classes"

也可以使用 取得环境变量,例如下面的buildfile 尝试取得

JAVA_HOME 环境变量并显示它,如果没有设定这个环境变量,则会显示没有设定该环境变量的信息:

...

也可以设定一个 .properties 文件,之后在 buildfile 指定运行 ant 时加载它。方法如下:

也可以通过 ant 执行 buildfile 时将指定的属性设定为系统环境变量。例如:

470

A Ant 简介

还有一些方法可以取得系统属性。例如下面的方式可以取得使用者目录:

A.5 路径(Path)

使用 Ant 可以轻易地管理 Classpath 的设定问题。可以使用来管理路径参考,使用来指定目录或 jar 文件。例如:

上面的例子也可以使用分号设定一系列的位置。例如:

也可以使用来指定某个目录下的文件。例如:

标签用来包括或排除文件(或是可以使用 includes、excludes 属性设定),可以在上面使用*表示零个或多个字符符合,?表示符合一个字符。

之后在进行任务时,可以使用 标签像下面这样引用之前所设定的路径:

也可以在进行任务时直接使用 标签来指定Classpath。例如:

471

A.6 常用任务(Task)

以下介绍几个常用的 任务标签的编写,有些主题与前面介绍重复的,则仅作提示。

设定属性

当在编写 build.xml 时发现到有一些属性设定出现过两次以上,例如目录的指定,可以将这些属性使用加以设定,以后若要改变属性设定,就只要改变对应的即可,不必在 build.xml 中来回搜索与修改。例如:

属性设置在 A.4 节有较详细的介绍,这里不再重复说明。

提供 help 信息

可以提供一些 ant 构建时的 help 信息。例如:

Help! Help!

Here is a help info.

Write your own information here.

]]>

CDATA 表示提供字符信息 (Character Data),在 ![CDATA["与 "]]>之间的文字可以使用自由格式编写,适用于比较长的信息文字的显示。

472

A Ant 简介

在执行 ant 时加上 -projecthelp 或-p 就会自动显示 help 这个 上的内

容。如果上加有 description 属性,当使用 ant -projecthelp 时也会一并显

示该信息。一个执行的例子如下:

C:\workspace\HelloWorld>ant -p

Buildfile: build.xml

Main targets:

help Type ant help for detail.

Default target: run

要显示详细信息,则需运行 ant 时指定 help 这个。下面介绍如何显

示详细信息:

C:\workspace\HelloWorld>ant help

Buildfile: build.xml

help:

[echo] Help information!!

[echo] Help! Help!

[echo]

[echo] Here is a help info.

[echo] Write your own information here.

[echo]

BUILD SUCCESSFUL

Total time: 0 seconds

文件的复制、建立与删除

在每一次构建程序前,会备份前一次的构建结果,可以使用标签来

指定要复制的文件。例如:

在构建程序时,可以使用标签建立一些必要的目录。例如:

description="prepare necessary dirs">

473

编译程序

编译程序的任务当然是最常用的,还可以在编译程序时,加入

一些

Classpath 的指定,这是一个相当方便的功能。例如:

description="compile the source files">

A.5 节中有更多有关路径设定的介绍,这里不再重复介绍。

执行程序

标签用来执行 Java 程序。例如:

制作 jar 文件

可以使用标签将编译完成的文件打包为.jar 文件 (Java Archive File),

并可以指定 MANIFEST 文件。例如:

manifest="META-INF/MANIFEST.MF"

basedir="${lib.dir}"/>

如果提供有 MANIFEST.MF 文件,才需要设定 manifest 属性。为了完成 jar 打包的任务,可以在 META-INF 目录下提供一个 MANIFEST.MF 文件。例如:

474

A Ant 简介

MANIFEST.MF

Manifest-Version: 1.0

Created-By: caterpillar

Main-Class: onlyfun.caterpillar.HelloWorld

Class-Path: HelloWorld.jar

执行 ant 时可以指定任务与提供 lib 目录及 jar 文件的名称。例如:

C:\workspace\HelloWorld>ant jar -DlibDir=lib -

DjarFile=HelloWorld.jar

Buildfile: build.xml

jar:

[jar] Building jar: C:\workspace\HelloWorld\lib\HelloWorld.jar BUILD SUCCESSFUL

Total time: 0 seconds

这里的设定所建立的 jar 由于包括 Main-Class 设定,而指定的类别中有main(),所以可以直接执行。例如:

C:\workspace\HelloWorld\lib>java -jar HelloWorld.jar

Hello Java!!

制作 war 文件

对于网站应用程序的部署,可以使用标签将所有相关的文件包装为war(Web Application Archive)文件。例如:

webxml="src/webapp/WEB-INF/web.xml">

A.7 一个简单的 buildfile

以下是一个简单的 buildfile,您可以根据实际需求来作修改。

(完整word版)小学一年级汉语拼音字母表(详细)

声母表(23个) b p m f d t n l g k h j q x zh ch sh r z c s y w 韵母表(24个) ɑo e i u üɑi ei ui ɑo ou iu ie üe er ɑn en in un ün ɑng eng ing ong 整体认读音节(16个) zi ci si zhi chi shi ri yi wu yu yin ying yun ye yue yuan j、q、x、y加ü时,要摘帽。(ju、qu、xu、yu) 韵母表 单韵母:ɑo e i u ü 复韵母:ɑi ei ui ɑo ou iu ie üe 特殊韵母:er 前鼻韵母:ɑn[安] en[恩] in[因] un[温]ün[云]后鼻韵母:ɑng[昂] eng[摁] ing[英] ong[雍] 双唇音: b p m 唇齿音: f 舌尖音: d t z c s n l

翘舌音:zh ch sh r 平舌音:j q x 舌根音:g k h 音节分两拼音节(声母和韵母)和三拼音节(声母、介母、韵母) 三拼音节(9个):iɑ uɑ uo uɑi iɑo iɑn iɑng uɑng iong 三拼音节是指由声母+介母+韵母拼成的音节 er既不是三拼音节又不是整体认读,而是零声母音节 声介合母(介母): bi pi mi di ti ni li ji qi xi du tu nu lu g u ku hu zhu chu shu ru zu cu su lü nü ju qu xu 音节中,声母和韵母中间的i和u称为介母 i、u、ü还可做三拼音节中的介母,介于声母、韵母之间,和声母、韵母一起组成音节,如“选xuǎn管guǎn家jiā”音节中的ü、u、i是介母。 这样的介韵组合一共有11个,教学中可引导学生发现以下规律: 介母是i的: iɑ、iɑn、iɑng、iɑo、ion g。 介母是u的:uɑ、uɑi、uɑn、uɑn g、uo。 介母是ü的:üɑn。 老大ɑ开头的韵母前面可以有介母的一共有9个,而老二o开头的韵母前面可以有介母的只有2个(ion g和uo),其他四兄弟e、i、u、ü都不和介母一起组成音节。

小学汉语拼音字母表卡片-word打印版2

1

2

一、汉语拼音音节表 b ba bo bai bei bao ban ben bang beng bi bie biao bian bin bing p pa po pai pao pou pan pen pang peng pi pie piao pian pin ping m ma mo me mai mao mou man men mang meng mi mie miao miu mian min ming f fa fo fei fou fan fen fang feng d da d e dai dei dao dou dan dang deng di die diao diu dian ding t t a t e t ai t ao t ou t an t ang t eng t i t ie t iao t ian t ing n na nai nei nao no nen nang neng ni nie niao niu ni an nin niang ning l la le lai lei lao lou lan lang leng li lia lie liao liu lian lin liang ling g ga ge gai gei gao gou gan gen gang geng k ka ke kai kou kan ken kang keng h ha he hai hei hao hou hen hang heng j ji jia jie jiao jiu jian jin jiang jing q qi qia qie qiao qiu qian qin qiang qing x xi xia xie xiao xiu xian xin xiang xing xiong zh zha zhe zhi zhai zhao zhou zhan zhen zhang zheng (za zi ze zai) ch cha che chi chai chou chan chen chang cheng (ca ce ci cai cao can) sh sha she shi shai shao shou shan shen shang sheng (sa se si sai…) r re ri rao rou ran ren rang reng (16个整体认读音节) y ya yo yi yu ye yue yao yan you yang yong yuan yin yun ying w wa wai wan wu wang 3

相关主题
文本预览
相关文档 最新文档