陈炎 itmarksman@gmail.com 南京大学软件学院 2007.4.1 Ant简介 Ant一个优秀的构建工具 Ant意思是Another Neat Tool 陈炎 itmarksman@gmail.com 南京大学软件学院 2007.4.1.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
產學攜手合作計畫 楊授印 國立虎尾科技大學 推廣教育中心 主任 動力機械工程系 助理教授 民國103年10月30日.
《 Java开发环境配置》 主讲人:耿力.
日月光·伯爵居项目介绍.
香港故事之 三年零八個月的艱苦歲月 組員: 梁珮瑩 吳遠莉 李琪 李青儀 方松皓.
Java程序设计教程 第一讲 Java概述.
我的故事 ————往事回首.
教育部技職司 北區:2015年10月12日下午 南區:2015年10月16日下午
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
女生成功靠什么? 09英本四班 傅柏双.
四資二甲 第三週作業 物件導向程式設計.
国际投资环境罗氏评级法 美国.
社会保障学 第5章 失业保险.
主 题 班 会 团 结   协 作    力 量.
理想.
JAVA程序设计.
固定与搬运技术 义乌市中心医院 陈红卫.
OUTLINE Android app Devolpment Flow App反組譯解說 實例 簽名詳解 DalvikByteCode
案例分析 胎记美容记 第6小组
人生五色臉 年輕十歲必學的小動作,九個保持身體健康的的小訣竅 人們常在不經意間做些小動作,並認為這是身體的本能反應,
第 13 章 套件 (Packages).
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
APP課程:Android程式設計開發環境與工具介紹
版本控制工具VSS.
CH3 Eclipse.
ANT 南京大学软件学院
第3章 分布式文件系统HDFS (PPT版本号:2017年2月版本)
Qtopia 编程部分要点分析 苗忠良.
ANDROID與OSGI平台整合.
Android開發環境建置與設定 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
编译与多文件.
开发Eclipse插件的基本步骤 插件通过添加到预定义的扩展点来向平台添加功能。要将程序代码变成插件,需要: 决定插件如何与平台集成
第1章 Delphi 6快速入门 1.1 Delphi 6概述 1.2 Delphi 6的安装 1.3 Delphi 6的界面描述.
基于 C# 的 .NET Framework 程序设计
Android開發環境建置與設定 建國科技大學 資管系 饒瑞佶 2010/10.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
辅导课程九.
建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2 2013/2 V3 2014/9 V4
認識 Java.
C/C++/Java 哪些值不是头等程序对象
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
Java Lab2 主要内容: 环境配置与第一个程序的运行.
Confidential Property
開發Java程式語言的工具 JDK.
課程網站
Location Based Services - LBS
第十二章 学习使用Ant Apache Ant是一个基于Java的构建工具,它可以 会构建多种项目,但是目前主要被用于Java项目 的构建, Ant是用Java语言编写,可以在多个操 作系统中运行,目前在绝大部分的Java开源项目 中,都选择使用Ant作为构建项目的工具,Ant已 经成为Java开源项目构建的事实标准,而且越来.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Interfaces and Packages
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
教师教育科研的若干策略 21 May 2014.
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
code::blocks 與GLUT 程式開發
JAVA 程式設計與資料結構 第三章 物件的設計.
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Presentation transcript:

陈炎 itmarksman@gmail.com 南京大学软件学院 2007.4.1 Ant简介 Ant一个优秀的构建工具 Ant意思是Another Neat Tool 陈炎 itmarksman@gmail.com 南京大学软件学院 2007.4.1

Ant的基本概念——Java 的makefile 通过配置一个XML文件快速开发创建和部署过程 使用buildfile(如build.xml)来完成一系列操作 一个流程脚本引擎,用于自动化调用程序完成项目的下列任务: 编译、打包、测试、调用系统命令(exec)…… 优点 平台无关的 基于XML,比make脚本好维护

Ant的安装 下载Ant包并解压 将解压后bin目录加入PATH中(如F:\ant\bin) 设置 ANT_HOME 环境变量 ANT_HOME=解压目录(如F:\ant) 通过运行:ant -version确认安装是否成功。

使用ant 运行ant 查阅antdoc 命令行模式下到buildfile所在目录 ant [-buildfile/-f] [文件名] [目标] 如果需要指定buildfile,则加入-buildfile或-f参数 查阅antdoc ant使用帮助:安装目录\docs\index.html ant任务介绍

Buildfile文件的结构

Buildfile文件 以XML文件来描述的 陈述式语法。 每个构建文件包含一个工程(project)。 每个工程包含若干个目标(target)。 目标可以依赖于其他的目标(depends)。 目标包含任务(task)。

简单的buildfile <?xml version="1.0"?> <project name=“myproject" default=“test“ basedir="." > <target name=“test" description=“ test ant."> <javac srcdir=“.”/> <echo message=“Ant is working properly”/> </target> </project> project: 每个构建文件以project为根节点。 Name=“myproject” 为工程命名。 default=“ant” :默认执行test.ant目标

简单的buildfile <?xml version="1.0"?> <project name=“myproject" default=“test" basedir="." > <target name=“test" description=“ test ant."> <javac srcdir=“.”/> <echo message=“Ant is working properly”/> </target> </project> JAVAC:用于编译JAVA源码 ECHO: 当构建抵达这里时,它将显示该文本内容

从命令行运行 Ant 是从命令行执行的 Ant 生成任务的一些典型输出: Buildfile: build.xml init: [mkdir] Created dir: E:\tutorials\ant\example\build [mkdir] Created dir: E:\tutorials\ant\example\dist compile: [javac] Compiling 8 source files to E:\tutorials\ant\example\build dist: [jar] Building jar: E:\tutorials\ant\example\dist\example.jar BUILD SUCCESSFUL Total time: 2 seconds

Ant中的属性 Ant 中的属性类似编程语言中的变量,它们都具有名称和值。然而与通常的变量不同,一经设置,Ant 中的属性就不可更改;它们是不可变的,就像 Java 语言中的 String 对象。 例:<property name="metal" value="beryllium"/> 生成文件的其他部分引用属性语法:${metal} 例如:<property name="metal-database" value="${metal}.db"/>

Ant中的DataType DataType可以很自然的处理构建过程中的文件和路径问题 常见的DataType: Environment环境     Fileset文件集 Patternset模式集     Filterset过录集 Path路径

定义依赖关系 生成一个项目一般需要许多步骤 —— 例如首先要编译源代码,然后将它打包为 Java 归档文件(Java Archive File,JAR)。 每个目标的定义依据的是在它在能够执行之前必须完成的其他所有目标。 使用 target 元素的 depends 属性来实现的。例如: <target name=“compile" depends="init"/> <target name=“package” depends=“compile"/> <target name=“clean" depends=“init"/>

定义依赖关系 在上面的例子中,如果让 Ant 完成 package 步骤,则依赖图如下:   注意目标出现在生成文件中的顺序并不重要:执行顺序是由depends 属性唯一确定的。 init compile clean package

定义依赖关系 实际执行系列是: init ,compile,init,compile,package

编译源码——javac任务(1) Javac任务 classpath:等价于 javac 的 –classpath 选项。 <target name=“compile” description="compile source"> <mkdir dir=“${dir.build}”/> <javac srcdir=“${dir.src}” destdir=“${dir.build}”> <include name=“**/*.java"/> </javac> </target> 其它有用属性: classpath:等价于 javac 的 –classpath 选项。 debug=“true”:指示编译器应该带调试信息编译源文件。

编译源码——javac任务(2) 引入jar包——添加到classpath中 <target name="compile” description="compile source"> <mkdir dir="${dir.build}"/> <javac srcdir="${dir.src}" destdir="${dir.build}" > <include name="**/*.java"/> <classpath> <pathelement location="lib/myObj.jar"/> <pathelement location="lib/junit-4.0.jar"/> </classpath> </javac> </target>

创建 JAR 文件 在编译 Java 源文件后,使用<jar>被打包. manifest 属性允许指定一个用作该 JAR 文件的清单的文件. <jar destfile="package.jar" basedir="classes">   <manifest>   <attribute name=“Built-By”  value=“${user.name}”/>                                    <attribute name=“Main-class”  value="package.Main"/>   </manifest> </jar>

时间戳生成 tstamp任务一般在init目标中调用 最简单的格式<tstamp/> 在调用 tstamp 任务之后,我们能够根据日期命名该 JAR 文件,如下所示: <jar destfile="package-${DSTAMP}.jar" basedir="classes"/> 如果这个任务在 2007年 4月 1 日调用,该 JAR 文件将被命名为package-20070401.jar。

综合实例

创建目录 <mkdir dir="archive/metals/zinc"/> 首先要注意 / 被用作目录分隔符,这是 UNIX 和 Linux 的惯例。我们能够同样容易地使用 \,而不管平台是什么 —— Ant 能够处理任一种形式,甚至能够处理两种形式的混合。 mkdir 任务的另一个有用特性是它的如下能力:在父目录还不存在时创建它们。

删除目录 <delete dir="archive/metals/zinc"/> 这将删除指定的目录连同它包含的所有文件以及子目录。使用 file 属性而不是 dir 属性可以指定要删除的单个文件。

复制和移动文件及目录 在 Ant 中制作文件的一份拷贝很简单。例如:  <copy file=“src/Test.java”  tofile="src/TestCopy.java"/> 您还可以使用 move 来执行重命名操作而不是拷贝文件:  <move file=“src/Test.java”  tofile="src/TestCopy.java"/> 文件复制或移动到另一个目录

创建和解压缩 zip 及 tar 文件 zip 文件的 Ant 任务:  <zip destfile="output.zip" basedir="output"/> 创建 tar 文件:  <gzip src="output.tar" zipfile="output.tar.gz"/> 解压缩和提取文件:  <unzip src="output.tar.gz" dest="extractDir"/>

制作java文档——javadoc任务 文件集——fileset(部分任务支持) <fileset dir=“引用路径”></fileset> 可以使用include、exclude特性 示例 <target name="javadoc" description="Generates javadoc."> <javadoc destdir="${dir.doc}"> <fileset dir="${dir.src}"> <include name="**/*.java"/> <exclude name=“**/*Test.java”/> </fileset> </javadoc> </target>

单元测试集成到Ant中 执行test.util.ServeTest <target name="unittest" description="run test" depends="compile"> <java fork="yes" classname="junit.textui.TestRunner" taskname="junit" failonerror="true"> <arg value="test.util.ServeTest"/> <classpath> <pathelement location="${dir.build}"/> <pathelement location="lib/myObj.jar"/> <pathelement location="lib/junit-4.0.jar"/> </classpath> </java> </target>

IDE 集成   由于 Ant 的普及性,大多数现代 IDE 现在都集成了对它的支持,其他许多 IDE 则在插件提供对它的支持。受支持的环境列表包括 JEdit 和 Jext 编辑器、Borland JBuilder、IntelliJ IDEA  JavaDevelopment Environment for Emacs (JDEE)、NetBeans IDE、Eclipse 。

Ant的作用 软件部署。Ant能编译,打包,部署。 使用ant之后就不需要手工操作。 跨平台移植程序。Ant是跨平台的 。 方便不懂编程的人。 因为版本更新,因为修正bug需要一次又一次得重新部署。 这时只需要运行一次build.xml

使用ant实例 Eclipse中集成Ant实现快速开发

创建Eclipse工程 File→New→Project,打开”New Project“对话框,选择Java Project项目并点击Next。 输入工程名AntExample,并点击Finish。

添加Java代码 选择AntExample工程并且选择“File→New→Class”以打开“New Java Class”对话框 。 然后,填写包名为cn.nju,新类的名字为AntClass . 添加代码 public static void main(String args[]){ System.out.println("No worries."); }

在Eclipse中编写Ant Build文件 AntExample工程并且选择“New→File”。在“File Name”框中,输入build.xml,并且点击Finish 。 只要文件后缀是.xml的,Eclipse就把认为是可能的Ant buildfile 。

编辑 Ant buildfiles 在build.xml文件的右键菜单上选择Open With > Ant Editor 。打开build.xml文件。 在eclipse的ant Editor输入内容。 按Ctrl-Space 可以激活内容帮助功能。 可以应用自定义的模板(具体参见帮助文档) 可以检出编写错误。

Using the Ant view 用Outline来查看,编写 build.xml的结构。

运行ant的buildfile文件 方式一:在build.xml右键菜单上选择Run As > Ant Build 。 会弹出对话框来设置运行的参数。

执行结果

执行后生成文件

Eclipse中使用ant 参见Eclipse帮助文档

学习资料 antdocs:没什么比他更权威 《Ant极限编程》 《使用Ant进行JAVA开发》

Class end Thank you! 联系方式: 215机房 itmarksman@gmail.com