- 浏览: 414968 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (158)
- SpringBoot (10)
- vue.js (4)
- 2017基础知识 (2)
- jquery (4)
- extjs (8)
- spring (13)
- Java基础 (24)
- ibatis (2)
- oracle (18)
- 服务器配置 (8)
- maven (7)
- web应用开发 (14)
- 数据库 (9)
- 第三方依赖 (3)
- 百味人生 (7)
- svn (1)
- 问题一堆 (2)
- 测试驱动开发 (1)
- webServices (2)
- 网络编程 (2)
- 其它 (4)
- hibernate (2)
- ec标签序号列 (1)
- javascript (1)
- ActiveMQ (2)
- linux (5)
- UI (1)
- 问题汇集 (1)
- redis (1)
最新评论
-
jackson200:
讲解的狠不错!谢谢!
spring注入原理 -
阳光泛滥的日子:
讲的很透彻,受教了 。
spring中注解的实现原理 -
liudechao9:
最近在研究这方面,很不错,但是多线程并发的时候可能会出问题,而 ...
spring中注解的实现原理 -
小帅1127:
厉害啊 我的哥
spring中注解的实现原理 -
phoenixpaul:
...
Oracle存储过程和程序包
build.xml
<?xml version="1.0"?> <project default="dist" name="test_ant"> <property name="srcDir" location="src" /> <property name="buildDir" location="build" /> <property name="distDir" location="dist" /> <target name="init"> <tstamp /> <mkdir dir="${buildDir}" /> <mkdir dir="${distDir}" /> </target> <target name="compile" depends="init"> <javac srcdir="${srcDir}" destdir="${buildDir}" /> </target> <target name="dist" depends="compile"> <jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}"> <manifest> <attribute name="Built-By" value="${user.name}" /> <attribute name="Main-Class" value="package.Main" /> </manifest> </jar> <jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}" /> </target> <target name="clean"> <delete dir="${buildDir}" /> <delete dir="${distDir}" /> </target> </project>
一、Ant介绍
Ant是Java的生成工具,是Apache的核心项目;直接在apache官网下载即可;
Ant类似于Unix中的Make工具,都是用来编译、生成;
Ant是跨平台的,而Make不能;
Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目;
下载地址: http://ant.apache.org/bindownload.cgi
二、Ant配置
在Ant安装之前需要安装好JDK,并配置好JAVA_HOME;
Ant配置:
1.新建环境变量ANT_HOME :值为ANT的主目录;
2.在path中配置%ANT_HOME%/bin ;
配置完成之后,打开命令行,输入ant,当出现:
Buildfile: build.xml does not exist!
Build failed
时说明配置完成;
三、Ant入门
ant的默认生成文件为build.xml;输入ant后,ant会在当前目录下搜索是否有build.xml,如果有,则执行;当然也可以自定义生成文件,通过ant -f a.xml 即可指定a.xml为生成文件;
ant的生成文件是xml文件,整体结构为:
- <? xml version = "1.0" encoding = "GBK" ?>
- < project default = " targetname" >
- < target name = "name" >
- </ target >
- </ project >
project是生成文件的根元素,表示一个工程;
target是project的子元素,表示一个任务;一个project中可以定义多个target元素,表示多个任务;
default属性表示默认执行的target,如果ant命令没有指定target,则执行default的target;
ant targetname;则会执行此target,而忽略default设置的target;
注意:不能有两个相同的targetname;
代码举例:创建并删除hello目录;
- <? xml version = "1.0" encoding = "gbk" ?>
- < project default = "delete" >
- < property name = "name" value = "xiazdong" />
- < target name = "delete" depends = "mkdir" >
- < delete dir = "${name}" />
- </ target >
- < target name = "mkdir" >
- < mkdir dir = "${name}" />
- </ target >
- </ project >
四、Ant的XML元素详解
1.<project>元素
是Ant生成文件的根元素;一般形式如:
<project default=" "[ basedir="." ] [name="projectname"]>
default的值是默认执行的target名;
basedir是指定基准目录,一般都是basedir="."
name是指工程名字;
2.<target>元素
是project元素的子元素,在project元素中能够有多个target;一般形式如下:
<target name=" " [ depends=" A "] [ if =" prop1 "] [ unless=" prop2"]>
</target>
name表示target的名称;
depends中填写其他target名称(可以有多个名称,用逗号分割),表示只有targetA完成之后才能够做此target,如果执行此target,则会先执行A;
if的值表示一个属性名,只有设置了该属性名,才能执行此target;
unless的值表示一个属性名,只有没有设置该属性名,才能执行此target;
3.<property>元素
是project的子元素 ;property用于定义属性,一般形如:
(1)<property name=" pname " value=" pvalue "/>
如果要使用此property,则需要${pname};类似于表达式语言;
(2)<property file="a.properties"/> 通过此属性文件导入属性;
如果单纯想使用$,则通过$$表示;
五、Task介绍
在Ant中Task是target的子元素,即一个target中可以有多个task;而Task分为:
(1)核心Task;
(2)可选Task;
(3)自定义Task;
下面介绍一些常用的核心Task;
1.<echo>
用于单纯输出,一般形如:
<echo> </echo>
举例:<echo>hello</echo>
2.<javac>
用于编译java文件,一般形式如下:
<javac srcdir=" src " destdir=" class " [classpath=" "]/>;
srcdir是编译此文件夹下或子文件夹下的全部java文件;
destdir是编译后的class文件放置路径;
classpath指定第三方类库;
3.<java>
运行java类,一般形式如下:
<java classname=" " fork="yes ">
【<arg line="param1 param2 param3"/>】
</java>
classname用于指定运行的类名称;
fork="yes"表示另起一个JVM来执行java命令,而不是中断ANT命令,因此fork必须为yes ;
4.<jar>
打包成jar包;一般形式如下:
<jar destfile=" main.jar" basedir=" ">
<manifest>
<attribute name="Main-Class" value="classname"/> <!--指定主类-->
</manifest>
</jar>
destfiie的值为jar包的名称;一般为${dest}/main.jar ;
basedir的值是需要打成jar包的目录;一般为${classes}
manifest表示设置META-INF;
5.<mkdir>
创建目录,可以多层创建,比如a\b\c,则可以连续创建,一般形式如下:
<mkdir dir="a\b"/>
6.<delete>
删除目录,一般形式如下:
<delete dir="a\b"/> 可以删除a目录下的b目录;
<delete file="1.txt"/>可以删除文件;
7.<tstamp>
时间戳,一般形式如下:
<tstamp />
接下来可以使用${DSTAMP}进行调用当前时间;
8.<copy>
复制文件,一般形式如下:
<copy file="file1" tofile="file2"/>
file是源文件;
tofile是目标文件;
9.<move>
移动文件,一般形式如下:
<move file="file1" tofile="file2"/>
file是源文件;
tofile是目标文件;
10.<replace>
用于替换字符串,类似于String的replace操作,一般形式如下:
<replace file="filename" token="old" value="new"/>
file表示要执行替换的文件;
token表示被替换的字符串;
value表示替换的字符串;
代码举例:一般项目中的ant结构
- < project default = "init" >
- < property name = "src" value = "src" />
- < property name = "classes" value = "classes" />
- < property name = "dest" value = "dest" />
- < path id = "classpath" >
- < pathelement path = "${classes}" />
- </ path >
- < target name = "help" >
- < echo > help -打印帮助信息 </ echo >
- < echo > compile -编译java源文件 </ echo >
- < echo > run -运行程序 </ echo >
- < echo > build -打成jar包 </ echo >
- < echo > clean -清楚全部编译生成文件 </ echo >
- </ target >
- < target name = "compile" >
- < delete dir = "${classes}" />
- < mkdir dir = "${classes}" />
- < javac srcdir = "${src}" destdir = "${classes}" />
- </ target >
- < target name = "run" depends = "compile" >
- < java classname = "org.xiazdong.Test" fork = "yes" >
- < classpath path = "${classes}" />
- </ java >
- </ target >
- < target name = "build" depends = "run" >
- < delete dir = "${dest}" />
- < mkdir dir = "${dest}" />
- < jar destfile = "${dest}/Test.jar" basedir = "${classes}" >
- < manifest >
- < attribute name = "Main-Class" value = "org.xiazdong.Test" />
- </ manifest >
- </ jar >
- </ target >
- < target name = "clean" >
- < delete dir = "${classes}" />
- < delete dir = "${dest}" />
- </ target >
- </ project >
总结一下:
- <? xml version = "1.0" encoding = "GBK" ?>
- < project name = "Test" default = "" basedir = "." >
- < property name = "src" value = "${basedir}\src" />
- < property file = "${basedir}\a.properties" />
- <!--
- path用法
- 1.id属性表示编号,用于被引用
- -->
- < path id = "classpath" >
- <!--
- pathelement的用法
- 1.path表示多个目录,用“;”隔开目录
- 2.location表示一个目录
- -->
- < pathelement path = "lib;src" />
- < pathelement location = "lib" />
- <!--
- dirset的用法
- 1.dir属性指定根目录
- 2.子元素< include name = " " /> 表示包含的目录
- 3.子元素< exclude name = " " /> 表示不包含的目录
- -->
- < dirset dir = "lib" >
- < include name = "**/*Test*" />
- < exclude name = "**/class" />
- </ dirset >
- <!--
- filelist的用法
- 1.dir属性指定根路径
- 2.files属性指定文件名的列表,用","隔开
- -->
- < filelist dir = "lib" files = "a.xml,b.xml" />
- <!--
- fileset用法
- 1.dir属性指出根路径
- 2.子元素< include name = " " /> 指定包含的文件名
- -->
- < fileset dir = "lib" >
- < include name = "**/*.jar" />
- </ fileset >
- </ path >
- <!--
- target用法
- 1.表示任务,子元素为各种task的集合;
- -->
- < target name = "target1" >
- <!--
- javac用法
- 1.srcdir表示java文件的目录
- 2.destdir表示class文件的保存目录
- -->
- < javac srcdir = "src" destdir = "bin" >
- <!--
- classpath用法
- 1.refid引用前面的path指定的路径
- -->
- < classpath refid = "classpath" />
- </ javac >
- <!--
- java用法
- 1.classname表示要运行的类
- 2.fork = "yes" 一定要写上!!
- -->
- < java classname = "Test" fork = "yes" >
- < classpath refid = "classpath" />
- <!--
- arg表示指定的参数
- -->
- < arg value = "a b c" />
- </ java >
- <!--
- echo表示输出
- -->
- < echo > Hello world </ echo >
- <!--
- copy表示复制文件
- delete表示删除文件
- mkdir表示创建目录
- move表示移动文件
- -->
- < copy file = "src.txt" tofile = "dest.txt" />
- < delete dir = "src" />
- < mkdir dir = "src" />
- < move file = "src.txt" tofile = "dest.txt" />
- </ target >
- </ project >
五、在Eclipse中使用Ant
在Eclipse中虽然没有内置创建Ant的生成文件,但是可以通过配置完成;
(1)点击 window-->preferences-->editors-->file associations;
(2)在File types中创建一个build.xml,并将associated editor的默认项设置为ant editor即可;
当在项目中创建一个build.xml时,这个文件就是ant的生成文件;
六、模式匹配
在Ant中有一些基本的模式匹配的功能,比如:
*表示任意字符串,**表示任意数量的目录;
(1)*.java,表示任意的java文件;
(2)*/*.java表示当前目录的任意java文件;
(3)**/*.java 表示当前目录结构下的任意java文件;
<fileset dir=" src ">
<include name="**/*.java"/>
<include name="**/*.txt"/>
<exclude name="**/*Test*"/>
</fileset>
表示包含src目录下的所有java和txt文件,排除文件名包含Test的文件;
举例:将java文件拷贝到dest文件夹下;
- < copy todir = "dest" >
- < span style = "white-space:pre" > </ span > < fileset dir = "." >
- < span style = "white-space:pre" > </ span > < include name = "**/*.java" />
- < span style = "white-space:pre" > </ span > </ fileset >
- </ copy >
七、自定义任务
自定义任务类似于JSP中的自定义标签;
步骤:
(1)继承org.apache.tools.Task;
(2)覆写public void execute()throws BuildException;
(3)在类中添加的属性即为任务标签的属性;
(4)在build.xml中声明任务<taskdef name=" " classname=" " classpath="bin"/>
举例:复制文件;
- package org.tools;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import org.apache.tools.ant.BuildException;
- import org.apache.tools.ant.Task;
- public class SimpleTask extends Task{
- private File file;
- private File tofile;
- public File getFile() {
- return file;
- }
- public void setFile(File file) {
- this .file = file;
- }
- public File getTofile() {
- return tofile;
- }
- public void setTofile(File tofile) {
- this .tofile = tofile;
- }
- @Override
- public void execute() throws BuildException {
- try {
- PrintWriter out = new PrintWriter( new FileWriter(tofile));
- BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream(file)));
- String line = null ;
- while ((line=in.readLine())!= null ){
- out.println(line);
- }
- out.close();
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
build.xml
- < taskdef name = "MyCopy" classname = "org.tools.SimpleTask" classpath = "bin" > </ taskdef >
- < target name = "mycopy" >
- < MyCopy file = "2.txt" tofile = "output.txt" />
-
</
target
>
摘自http://blog.csdn.net/xiazdong/article/details/7038851
发表评论
-
采用DES加密解密实现接口的通信加密认证
2018-08-22 09:20 807DES全称Data Encryption Standard, ... -
log4j2 配置
2016-01-06 17:10 71661、log4j2官方下载地址h ... -
本文出一个简单读取JVM内存使用情况的例子
2015-12-07 15:16 792<%@page contentType="t ... -
代替request.getRealPath()
2014-03-21 11:22 1019代替request.getRealPath(); ... -
session超时时间设置方法
2012-11-05 15:11 1140由于session值之前没有设置,以至于刚登录的 ... -
ant 使用
2012-06-25 11:39 2build.xml <?xml version=&qu ... -
java中的排序
2012-02-15 10:01 1027/** * 选择排序:首先第一趟从n个元素中找到最大或最小 ... -
封装类比较出现的问题
2011-10-09 10:24 1190Java为了性能提供了一个类似缓存的东西,不仅仅 ... -
java多线程三:线程同步
2011-07-20 11:21 1593多线程编程是很有趣的事情,它常常容易出现"错误 ... -
java多线程二:控制线程方法
2011-07-20 10:25 1012join线程: 1、Thread线程提供了让一个线程等待另外 ... -
java多线程一:概念与原理
2011-07-19 16:13 11651、线程是什么? ... -
java多线程
2011-07-19 15:06 31、线程是什么? 几乎所有的操作系统都支持 ... -
java多线程
2011-07-19 15:05 21、线程是什么? 几乎所有的操作系统都支持同事运 ... -
java多线程
2011-07-19 15:05 11、线程是什么? 几乎所有的操作系统都支持同事运行多 ... -
java多线程
2011-07-19 14:56 3http://lavasoft.blog.51cto.com/ ... -
java中的IO操作
2011-07-13 14:54 11211、 Java 的 IO 支持通过 ja ... -
多线程下载文件
2011-07-13 14:11 5226网络蚂蚁、FlashGet、迅 ... -
Java垃圾回收机制
2011-07-06 16:55 14971、当程序创建对象时, ... -
java反射机制
2011-06-02 14:06 1024一、定义: 1、在Java运行时环境中,对于任意 ... -
Java序列化
2011-05-30 14:51 1271一、当两个进程在进行 ...
相关推荐
Ant 使用详细介绍 Ant 是什么? Ant 是一个构建工具,它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。Ant 究竟能做什么呢?这取决于 Ant 的任务(Task),Ant 有...
"Ant使用指南.pdf"和"Ant.pdf"可能是更全面的Ant使用手册,包含详细的API文档和使用案例,帮助开发者深入理解Ant的各个方面。 总的来说,Ant是一个强大的工具,通过学习以上文档,初学者能够掌握Ant的基础和进阶...
这个“Ant使用指南”涵盖了Ant的基本概念、配置、任务和实战应用,旨在帮助开发者更好地理解和使用Ant。 1. **Ant简介** - Ant是一个基于Java的构建工具,其设计目标是简化Java项目的构建过程,通过XML描述构建...
通过阅读"ant指南"和"ant使用教程",你将深入理解Ant的工作原理,学会编写和执行Ant构建文件,从而提高Java项目的构建效率。不论你是新手还是经验丰富的开发者,这些资源都将为你的项目管理提供有力支持。
在"Apache Ant 使用指南"这本书中,你可能会学习到以下关键知识点: 1. **Ant基本概念**:了解Ant的基本结构,包括项目(Project)、目标(Target)、任务(Task)和属性(Property)。项目是构建的顶级容器,目标...
- **属性(Properties)**:Ant支持定义和使用属性,类似于变量,可以用于在整个构建文件中传递值。 - **任务(Tasks)**:Ant提供了一系列内置的任务,如`<javac>`用于编译Java源码,`<copy>`用于复制文件,`...
### ANT使用指南详解 #### 一、导言 Apache Ant 是一款开源的Java构建工具,类似于传统的Unix Make工具。Ant采用XML格式来定义构建过程,提供了丰富的任务(task)集合,适用于自动化编译、测试和部署Java应用程序。...
### ant使用教程 #### 一、Ant简介 1. **什么是Ant** - Ant是一款用于自动化构建过程的软件工具,最初由Apache Software Foundation开发。它主要用于编译、测试和部署Java应用程序,支持跨平台使用,因为它是用...
### ant使用手册ANT使用指南 #### 一、引言 Ant是一种流行的开源构建工具,用于自动化软件项目的构建过程。尤其适用于Java项目,但它也可以用于非Java项目。由于Ant的灵活性和易用性,它在Java开发者社区中迅速...
在“Ant使用指南”中,我们将深入探讨以下关键知识点: 1. **Ant的基本概念**:首先,你需要理解Ant的核心概念,包括构建文件、目标、任务和属性。构建文件是Ant工作的蓝图,定义了一系列的目标和任务,而任务是Ant...
### Ant使用指南-Ant入门手册 #### 一、Ant是什么? Apache Ant 是一款开源的 Java 构建工具,它的名字来源于“Another Neat Tool”的首字母缩写。Ant 能够帮助开发者自动化构建过程,包括编译源代码、运行测试、...
Ant是Apache软件基金会下的一个Java项目,它是一个强大的构建工具,...通过阅读《Ant使用指南》PDF文件,您将能深入理解并熟练运用Ant进行项目构建。无论您是新手还是经验丰富的开发者,都能从中受益,提升开发效率。
这个“ant使用手册(中文教程)”涵盖了Ant的基本概念、配置语法、任务使用以及在Java项目中的实际应用。 1. **Ant基本概念** - **构建文件**:Ant的构建过程通过一个名为`build.xml`的XML文件进行描述,该文件...
在"apache ant使用例子"中,我们可以通过一个名为"HelloAnt"的MyEclipse工程实例来学习如何使用Ant。MyEclipse是Eclipse IDE的一个扩展,特别适合于Java EE项目的开发,它内置了对Ant的支持,使得我们可以方便地在...
全面的ant使用手册~!内容如下: · Ant 生成文件是如何构造的 · 如何从命令行以及从Eclipse 内运行Ant · 如果通过编译源代码、创建 JAR 文件以及时间戳文件(以识别每次生成过程的输出)来生 成简单的 Java 项目 ...
### ant使用帮助文档 #### 知识点概览 1. **Ant的简介与功能** 2. **安装Ant的基本步骤** 3. **配置环境变量的方法** 4. **验证Ant是否安装成功** 5. **配置数据库链接信息** 6. **创建数据库表及与Ant项目的关联*...
### Ant使用指南:Java项目构建的利器 #### 引言 Apache Ant,作为一个基于Java的构建工具,由James Duncan Davidson创建,旨在简化Java项目的构建流程。Ant,全称Another Neat Tool,以其跨平台特性、易用性及...