ant使用简介

Project属性
1 一个Project能够通过<property>元素定义一系列属性
2 使用${property-name}符号引用属性值

在Ant build文件中定义属性的示例:
<property name="sourceDir" value="source"/>
<property eviroment="env"/>

引用已定义的属性示例:
<javac srcdir="${sourceDir}" destdir="classes"/>
<java classname="test.MyTester">
<classpath path="${env.CLASSPATH}"/>
</java>

ant会自动查找名为build.xml的编译文件,也可以指定编译文件
ant -buildfile mybuild.xml

一个ant build文件的示例:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test Project" default="run" basedir=".">
<property name="sourceDir" value="source"/>
<target name="compile">
<javac srcdir="${sourceDir}" destdir="classes"/>
</target>
<target name="run" depends="compile">
<java classname="test.MyTester">
<classpath>
<pathelement path="classes"/>
</classpath>
</java>
</target>
</project>

ant Targets
1 无论有多少个target依赖于一个target,该target都只执行一次。
2 Target可以像命令行参数一样明确地指定。
3 与target相关的任务依照它们定义的次序执行。
示例:使用命令行参数方式传递target
ant.bat [option] compile run

内置任务
1 基本的ant工具由很多内置的任务完成
2 一些常用的核心任务:
<javac>,<java>,<jar>,<war>,<ear>,<copy>,<delete>,<mkdir>,<move>,<tstamp>,<touch>,<javadoc>

使用命令行参数
<arg>元素向被执行的java类提供命令参数
<jvmarg>元素向虚拟机提供命令行参数

向Java类与虚拟机传递命令行的示例:
<java classname="test.Test" fork="yes">
<arg value="-help>
<jvmarg value="-Xml16m"/>
</java>

编译Java应用
任务javac编译java源代码,只编译源文件比.class文件新的源代码
.class文件被移动到指定的目的目录
使用javac任务的示例:
<javac srcdir="myproject/mysource" destdir="classes"/>
<javac srcdir="myproject/mysource" destdir="myproject/classes" excludes="mypackage/**"
classpath="mylibrary.jar"/>
excludes 表示不包含的路径,"**"表示指定目录下的所有子目录与文件,"*"表示指定目录下的文件

执行java应用
Java任务执行指定的Java .class文件
该class可以在一个新虚拟机,也可以在与ant所运行的同一虚拟机中执行。
使用java任务的示例:
<java classname="text.MyTest"/>
<java classname="test.MyTester" classpath="tester.jar" fork="yes"/>

<java classname="test.MyTester">
<classpath>
<pathelement path="myproject/classes"/>
<pathelement location="MyLibrary.jar"/>
</classpath>
</java>

定义系统属性
使用<sysproperty>元素定义Java类所需的系统属性
当Java类执行时,虚拟机可以使用这些属性
<java classname="weblogic.Server" fork="yes">
<sysproperty key="weblogic.management.discover" value="false"/>
</java>

创建Java Archive文件
任务jar可以归档一系列文件
归档的结果是:
能够更新现有文件或替换它们
可以选择为压缩或不压缩
创建Java归档的示例:
<jar jarfile="myArchive.jar" basedir="myproject/root"/>
<jar jarfile="myArchive.jar" basedir="myproject/root" excludes="*.html"
update="false" compress="true"/>

创建Web Archive文件
任务war以正确的J2EE Web应用格式将一系列文件进行归档。
属性webxml定义了可以作为部署描述文件web.xml的文件
使用<classes>和<lib>元素定义应用的class文件
示例:
<war warfile="myWebApp.war" basedir="myproject/root"
webxml="myproject/myWebApp.xml>
<lib dir="myproject/libraries"/>
<classes dir="myproject/classes" />
</war>

创建企业Archive文件
任务ear以正确的J2EE企业应用格式将一系列文件进行归档
属性appxml定义可作为部署描述文件的application.xml的文件
示例:
<ear earfile="myapp.ear" basedir="myproject/root"
appxml="myproject/myApp.xml" include="*.jar,*.war"/>

操作文件系统
ant有一些内置任务可用于操作文件系统如拷贝和删除文件和目录等
示例:
<copy file="myWeb.xml" tofile="root/WEB-INF/web.xml">
<copy file="web.xml" todir="root/WEB-INF" overwrite="yes"/>
<delte file="MyFile.txt"/>
<delete dir="myproject/temp"/>

概览:FileSets和PatternSets
<patternset>元素定义一个符合条件的资源集合。
<fileset>元素定义一个相对于基本目录的资源集合

<patternset>和<fileSet>元素的语法:
<patternset id ="javaFiles">
<include name="**/*.java"/>
</patternset>

<fileset dir="myproject/source">
<patternset refid="javaFiles"/> /*引用前面的定义*/
示例:
/*从一个或多个<fileset>元素中创建JAR文件*/
<jar jarfile="MyLibrary.jar">
<fileset dir="myproject/classes"/>
<fileset dir="myproject/bin" />
</jar>
/*在当前目录中使用先前定义的<patternset>元素删除所有的类文件*/
<delete>
<fileset dir=".">
<patternset refid="classonly"/>
</fileset>
</delete>
/*拷贝所有文件,不包括所有的java源文件*/
<copy todir="../applicatioon">
<fileset dir="myproject/root"/>
<patternset>
<exclude name="**/*.java"/>
</patternset>
</fileset>
</copy>

执行其它的Build文件
任务ant执行其它的build文件
默认情况下,将继承调用Project的所有属性
如果没有指定文件,ant将使用在当前目录中的build.xml文件
示例:
<ant antfile="mysubproject/mybuild.xml"/>
<ant dir="myprojects/mysubproject"/>
<ant antfile="buildEJB.xml>
<property name="deployFile" value="testEJB.jar"/>
</ant>


web应用Build文件示例:
<project name="My Web Application default="deploy" basedir=" . ">
<property name="wlhome" value="c:\bea\weblogic81"/>
<property name="domain" value="mydomain"/>

<target name="compile">
<mkdir dir="classes"/>
<javac srcdir="javasource" destdir="classes"/>
</target>

<target name="layout" depends="compile">
<mkdir dir="temp/WEB-INF/classes"/>
<copy todir="temp/WEB-INF/classes">
<fileset dir="classes"/>
</copy>
<copy todir="webroot"/>
<fileset dir="webroot"/>
</copy>
<copy file="web.xml" todir="temp/WEB-INF"/>
<copy file="weblogic.xml" todir="temp/WEB-INF"/>
</target>

/*从临时文件夹中创建WAR文件,清除所有临时文件*/
<target name="archive" depends="layout">
<jar jarfile="mysite.war" basedir="temp"/>
<delete dir="classes"/>
<delete dir="temp"/>
</target>

/*将WAR文件部署到WLS域中*/
<target name="deploy" depends="archive">
<copy file="mysite.war" todir="${wlhome}\config\${domain}\application"/>
</target>
</project>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值