ant java delete_ant 入门教程
ANT环境变量设置
说明:--->配置ANT环境变量前,还须配置JAVA的环境变量.
JAVA_HOME=....
PATH=%JAVA_HOME%\bin;
CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;
Windows下ANT用到的环境变量主要有2个,ANT_HOME 、PATH。
设置ANT_HOME指向ant的安装目录。
设置方法:
ANT_HOME = D:\apache_ant_1.7.0 (如此例)
将%ANT_HOME%\bin; %ANT_HOME%\lib添加到环境变量的path中。
设置方法:
PATH = %ANT_HOME%\bin; %ANT_HOME%\lib
1.2 ANT用法:
ant
使用当前目录下的build.xml运行Ant,执行缺省的target。
ant clean
若要执行build.xml中某个target:clean
ant -buildfile test.xml
使用当前目录下的test.xml运行Ant,执行缺省的target。
ant -buildfile test.xml compile
使用当前目录下的test.xml运行Ant,执行一个叫做compile的target。
(2)
eclipse中ANT的使用
若在eclipse中使用ant,则都不用下载ant包.eclipse已自带支持ANT了.具体配置如下:
1.新建Java Project-新建Java文件HelloWorld.java
HelloWorld.java
package example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
2.在工程根目录下新建build.xml
build.xml
Building the .jar file.
此脚本文件内容是编译/src/example下的java文件,并就地生成class文件,将这个class文件打成jar包,HelloWorld.jar。
此时工程的目录结构如下图所示:
如何在eclipse中应用build.xml:
1.先打开ant视图:
windows-->show view-->other-->ant.会打开ant视图。
2.只须将左边视图的build.xml拉动ant视图中即可显示所有target。若要运行其中某个target,只须双击目标target即可。
如下图:
在中定义的name,会显示在ant视图中的项目名;定义的default,会在ant视力中显示为蓝色标记
(3)
关于ant的设计:
在build.xml中定义的各target,尽量是独立的,不要存在依赖,因为这样方便各target的独立调试。若存在依赖,则会先执行各依赖的target,放慢调试的速度。只有一定要存在依赖时,才加。
在部署时,才一起加上去。
如:
在ant中包含打包及findBugs,pmd,checkStyle,其设计可以是:
1.
findBugs,pmd,checkStyle任务,保持不依赖,方便各调试(它们跟代码的编译,打包无关),如:
...
...
...
2.
在部署时,全部加上:
这样,即可以在部署时,执行编译,打包及代码检查。
注意:
depends存在多个依赖时,用“,”分开。执行顺序是:从左到右。
(4)
实例一:
项目结构:
antDemo
src
test1
WEB-INF
classes
build.xml
在此项目结构中,有源/目的文件夹,以及ANT的配置文件.
重要:
default=run的意思是,ant启动时执行此个target.在执行这个target之前,会查找是否有depends,如果有,会先执行它。
一.build.xml
二.Hello.java
package test1;
public class Hello{
public static void main(String[] arg){
System.out.println("hello world!!!!!!");
}
}
三,
运行ANT时,要先进入此项目的根目录,(因为build.xml就放在项目的根目录);
然后在DOS命令行输入ant 就可以了.
***************
改进后的代码:
(4)
实例二:
(位于tomcat/webapps/jasonAnt)
项目结构:
jason
src
test1
WEB-INF
classes
lib
web.xml
WebRoot
test.jsp
..
build.xml
关键的build.xml的配置:
分三部分:
第一部分:init
一般的WEB应用程序的结构如上,所以在init时,一般可设置5个property,分别是:
第二部分是编译:
第三部分是WAR打包:
设置WAR打包时,须设置生成的包位置及名;指定web.xml;指定JSP文件;指定lib;指定classes
打包后的结构: -->important
对于文件夹:
原来根目录下的src文件夹,WebRoot文件夹,将会消失,WEB-IFN文件夹仍保留,会产生一个新的META-INF文件夹.
对于文件:
同时build.xml文件,也会消失;WebRoot文件夹中的JSP文件会解压到根目录下.
如何在TOMCAT上发布:
只须将此jason.WAR包放到tomcat/webapps/目录下,启动SERVER后,TOMCAT会自动解压生成一个相应的文件夹.
在地址栏中输入:http://localhost:8088/jason/test.jsp即可访问.
(5)
ANT的关键元素
3.1 Projects
Ant的buildfile是用XML写的。每个buildfile含有一个project。
project有下面的属性:
name 项目名称;
default 当没有指定target时使用的缺省target(必填项);
basedir 用于计算所有其他路径的基路径。
3.2 Targets
一个项目可以定义一个或多个target。
Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target。
如果(或如果不)某些属性被设定,才执行某个target: 要想让一个target这样做,你就应该在target元素中,加入if(或unless)属性,带上target因该有所判断的属性。例如:
如果没有if或unless属性,target总会被执行。
target有下面的属性:
name target的名字(必填项);
depends 用逗号分隔的target的名字列表,也就是依赖表;
if 执行target所需要设定的属性名;
unless 执行target需要清除设定的属性名;
description 关于target功能的简短描述.
3.4 Properties
一个project可以有很多的properties。
可以在buildfile中用property task来设定,或在Ant之外设定。
一个property有一个名字和一个值。
将属性名放在"${"和"}"之间来表示:==属性值
内置属性:(如)
${os.name}对应操作系统的名字。
ant.file buildfile的绝对路径。
ant.version Ant的版本。
ant.project.name 当前执行的project的名字;由的name属性设定.
例子:
(7)
ANT的常用命令
4.1 File(Directory)类
4.1.0
意思是:选择${lib.dir}变量值的目录,以及此目录下的所有的JAR文件.
4.1.1 Mkdir
创建一个目录,如果他的父目录不存在,也会被同时创建。
例子:
说明: 如果build不存在,也会被同时创建
copy,move,delete的用法相似。
4.1.2 Copy
1. 拷贝单个的文件:
2. 拷贝单个的文件到指定目录下
3. 拷贝一个目录到另外一个目录下
4. 拷贝一批文件到指定目录下
4.1.3 Delete
1. 删除一个文件
2. 删除指定目录及其子目录
3. 删除指定的一组文件
4.1.4 Move
移动或重命名一个(组)文件、目录
1. 移动或重命名一个文件
2. 移动或重命名一个文件到另一个文件夹下面
3. 将一个目录移到另外一个目录下
4.1.5
echo
******************
4.2 Java相关
4.2.1 Javac
destdir="${build}"
includes="mypackage/p1/**,mypackage/p2/**"
excludes="mypackage/p1/testpackage/**"
classpath="xyz.jar"
debug="on"
/>
编译${src}和${src2}目录及其子目录下的所有。Java文件,但是package/p1/**,mypackage/p2/**将被编译,而 mypackage/p1/testpackage/**将不会被编译。Class文件将放在${build}指定的目录下,classpath表示需要用到的类文件或者目录,debug设置为on表示输出debug信息
若要在编译时,指定编译器的编码,可以在javac标签中添加属性encoding='utf8'.
4.2.2 java
相当于
classname中指定要执行的类,classpath设定要使用的环境变量
4.3 打包相关
4.3.1 jar
将一组文件打包
basedir="${build}/classes"
includes="mypackage/test/**"
excludes="**/Test.class"
manifest=”my.mf”
/>
将${build}/classes下面的所有文件打包到${dist}/lib/app.jar中,但是包括mypackage/test/所有文件不包括所有的Test.class,manifest属性指定自己的META-INF/MANIFEST.MF文件,而不是由系统生成.
4.3.2 war
对Jar的扩展,用于打包Web应用
4.3.3 ear
用于打包企业应用
4.4 时间戳
简单但是非常有用的 tstamp 任务:
这个任务通常在某次生成过程开始时调用,比如在一个 init 目标中。这个任务不需要属性,许多情况下只需 就足够了。
tstamp 不产生任何输出;相反,它根据当前系统时间和日期设置 Ant 属性。下面是 tstamp 设置的一些属性:
DSTAMP 设置为当前日期,默认格式为yyyymmdd 20031217
TSTAMP 设置为当前时间,默认格式为 hhmm 1603
TODAY 设置为当前日期,带完整的月份 2003 年 12 月 17 日
如:
在调用 tstamp 任务之后,我们能够根据日期命名该 JAR 文件,如下所示:
因此,如果这个任务在 2003 年 12 月 17 日调用,该 JAR 文件将被命名为 package-20031217.jar。
标签
该标签用于文件或文件集的拷贝,其属性如下。
.file 表示源文件。源目录,可以多个
.tofile 表示目标文件。
.todir 表示目标目录。
//多个file集
(2)
zip标签:
(3)
删除与创建目录,只须dir属性:
(4)
javac:
srcdir :必须的,除非嵌套有标签。包含源文件的文件夹
classpath:The class path to use. 文件夹中class会被导入的jar包
debug: 当值未为true时产生调试信息
deprecation: 假如为真,将会给出不建议使用的API,默认值false
destdir: 编译后文件存放的目标文件夹,默认是当前文件夹。
excludes :必须排除的文件模式的列表,以逗号或空格分隔。如果忽略,将不会排除任何文件(默认排除的文件除外)。
includes: 必须包括的文件模式的列表,以逗号或空格分隔。如果忽略,将包括所有文件。
compilerarg设置命令行参数.
(5)
转码:
(6)
war:
destfile表示生产JAR文件名。
webxml表示web.xml位置
fileset:定义war包下(即根目录)
,:定义war包中WEB-INF目录下的lib目录的内容,class目录内容.(war包一定要带的)
,自定义war包中WEB-INF目录下还要创建的目录及内容.(自定义的)
(6)
javadoc:
用于产生一个api文件(相当于一静态html页面组成的网站).
destdir:生成后存放的目录
sourcepath:是你的代码位置,记住是java文件的位置而不是class文件的位置哦
bottom:设置网页底部显示:Copyright Coship Inc. All Rights Reserved.
(7)
XDoclet任务就是Ant的自定义任务:
1. 声明任务
用Ant的任务来声明它。例如:
classname=”xdoclet.modules.ejb.EjbDocletTask”
classpathref=”xdoclet.lib.path”/>
如果你熟悉Ant的话,你就会知道这段代码是告诉Ant加载的任务定义。classname和classpathref属性告诉Ant到哪里去找实现这个自定义任务的XDoclet类。
一般共通的做法是:
把所有需要使用的XDoclet任务都放在Ant的一个目标里声明,这样在其他的目标里如果需要使用这些任务,只要depends这个任务就可以了。你可能已经在Ant的构建文件里包含了init目标,这就是放置XDoclet任务声明的好地方.如:
classname=”xdoclet.modules.doc.DocumentDocletTask”
classpathref=”xdoclet.lib.path” />
classname=”xdoclet.modules.ejb.EjbDocletTask”
classpathref=”xdoclet.lib.path” />
classname=”xdoclet.modules.web.WebDocletTask”
classpathref=”xdoclet.lib.path” />
现在,任务声明好了,XDoclet“整装待发”。
2.使用任务
你可以在任何目标里使用声明好的任务。在任务的上下文环境里,可以调动相关的子任务。让我们看一个例子,这个例子调用了任务。不要担心看不懂语法的细节,现在你只需要关心一些基础概念就可以了。
(9)
打包的执行流程:
设置变量(下面调用)-->初始化(clean操作,创建临时目录)-->编译-->打包-->生成API-->清理临时目录.
具体可参考如下:
.......
.....................
basedir="${abc.common.build.doc.dir}"/>
basedir="${abc.common.build.dist.dir}"/>
basedir="${webapp.java}">
destdir="${abc.common.build.doc.dir}"
author="true"
version="true"
use="true"
windowtitle="ABC后台公共部分 API" sourcepath="${abc.common.build.src.dir}" charset="UTF-8" encoding="UTF-8">
ABC后台公共部分 API]]>
Copyright © 2000 Dummy Corp. All Rights Reserved.]]>
ant java delete_ant 入门教程相关推荐
- java 接口入门,Java接口入门教程解读
Java接口入门教程解读,学习Java技术开发是一个长期的过程,今天小编介绍Java接口相关知识内容 接口 是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法和成员方法 ...
- Ant Design pro入门教程
Ant Design pro入门教程 最近公司再开项目 又要用antd 这次刚好给大家写一个入门安装教程 ( v5 typescript版本 ) 这套模板使用了react框架为基础哦 1. 准备环境 ...
- 【Java mail 入门教程】第三讲 接收邮件
====================================================== 注:本文源代码点此下载 ================================= ...
- 小白零基础学习Java开发入门教程奉上,希望对你有所帮助!
"持久和新"是编程语言方面对Java的适当评估. 想要进入互联网行业,想转向编程,Java无疑是一个非常普遍的选择. 但是,Java毕竟是一种编程语言,并且仍然存在一些技术障碍.如 ...
- java 输出中文_没见过的 Java 编程入门教程!例程使用中文标识符代码:问个好吧...
前言 Java 教程用中文写(如下)更能被新手理解学习.可惜至今没有看到类似入门教程,在此敢为人先. 注意:本教程的所有 Java 代码都可以正确运行,因为 Java 早已支持中文命名标识符. 编程语 ...
- JAVA入门Hwork,HBase Java编程入门教程
一款优秀的数据库除了会提供客户端,还会提供编程语言接口,HBase 也不例外.HBase 除了支持使用 Shell 客户端来操作(请看<HBase Shell及其常用命令>),还提供了多种 ...
- Java swing入门教程(转载)
swing入门教程(一) swing简介 UI 组件简介 在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是"用户界面".但是因为本教程的 ...
- java adt入门教程_Android基础入门教程目录
第一章:环境搭建与开发相关(已完结 10/10) https://blog.csdn.net/coder_pig/article/details/50000773 Android基础入门教程--1.1 ...
- java swing入门教程_JAVA swing初级教程(四)
附加的swing小部件(下) JOptionPane JOptionPane 是在 Swing中类似"快捷方式"的东西.通常,作为UI开发人员,您需要向用户呈现快速信息,让用户了解 ...
最新文章
- 位置相关属性offset(),position(),scrollTop()等
- macd java 源代码_MACD交易系统原理、用法及源代码
- Android11——DataBinding的使用
- 【学时总结模板时间】◆学时·10 模板·3◆ AC自动机
- ssm使用全注解实现增删改查案例——IEmpService
- 9种对抗电脑辐射的方法
- iOS进阶之TCP代理鉴权过程
- PathAnimation
- 浏览器怎么打开微信客户端连接服务器,微信“请在微信客户端打开链接”怎么办?-在浏览器中打开微信链接的方法 - 河东软件园...
- 移动网络广告优化(速度优化篇)
- 值得看看的艺术影片 (转)
- 计算机的剪切快捷键是什么意思,word中剪切的快捷键是什么 -电脑资料
- 技术债不是负担,而是成功的战略杠杆
- 用c语言绘制数学函数图像,用c语言画数学函数图像.DOC
- KITTI数据集下载(百度云)
- 边缘计算是5G应用的核心平台 , 产业空间广阔
- 初阶后的C++ 第七节 —— 多态
- [iOS]-工厂设计模式
- xhEditor实现插入代码功能
- 智慧园区综合管理系统的实用案例分析
热门文章
- 编写程序,计算斐波那契(Fibonacci)数列,输出前50项。该数列的前两项都是1,从第3项开始,其后的每一个数据项都是前面的两个数据项之和。
- 南华大学计算机学院保研名单,南华大学核资源工程学院2017年优秀应届本科毕业生免试攻读硕士学位研究生遴选与接受复试录取方案...
- 计算机基础知识形考 客观题,2015-电大形考-计算机应用基础---Windows-7操作系统-- -客观题(答案).pdf...
- shell脚本之正则表达式及sed,awk的使用
- 背景图片设置透明度而不改变内容
- 剑三千岛湖服务器是不是维护了,剑网3千岛秘辛成就怎么做 探知千岛湖不为人知的秘密...
- linux中怎么卸载gamit,科学网—Windows下自带Linux使用GAMIT问题 - 陈超的博文
- 陕西省计算机分数线,权威发布!刚刚,2021年陕西省高考分数线正式出炉!
- SAP ABAP 报告编程-08
- mybatis查询为中文时