2-build.xml 配置

使用ant <build.xml>编译,打包java项目,build.xml如下:

<project name="seleniumWebDriver" default="build" basedir=".">
	<description>
        simple example build file
    </description>
	<!-- set global properties for this build -->
	<property name="src" location="src" />
	<property name="build" location="target" />
	<property name="selenium" location="selenium" />
 
	<target name="init">
		<!-- Create the time stamp -->
		<tstamp />
		<!-- Create the build directory structure used by compile -->
		<mkdir dir="${build}" />
		<mkdir dir="${build}/classes" />
 
	</target>
 
	<target name="compile" depends="init" description="compile the source ">
		<!-- Compile the java code from ${src} into ${build} -->
		<javac srcdir="${src}" destdir="${build}/classes" includeantruntime="false">
			<classpath>
				<fileset dir="${hadoop.home}/share/hadoop">
					<include name="**/*.jar" />
				</fileset>
			</classpath>
		</javac>
	</target>
 
	<target name="build" depends="compile" description="generate the distribution">
		<!-- Build the jar file -->
		<jar jarfile="${build}/lib/WordCount.jar" basedir="${build}/classes" />
	</target>
 
	<target name="clean" description="clean up">
		<!-- Delete the ${build} and ${dist} directory trees -->
		<delete dir="${build}" />
	</target>
</project>

build.xml ant基本常用元素讲解


Project元素
Project元素是Ant文件的根元素,Ant构建文件中至少应该包含一个project元素,否则会发生错误,在每个project元素下面可以包含多个target元素。project的属性包括:
name : 项目名称
default:当调用时没有指定target时,此project的默认targe  当ant命令没有指定要执行的target ,则将执行默认的target
basedir:用于指定基路径的位置,改属性没有指定时,使用Ant的构建文件的父目录作为基路径

target元素
name: target的名称,这个属性在一个project中是唯一的。我们可以通过指定 target 元素的名称来指定某个 target 。
depends:用来描述target间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。 Ant 会依照 depends 属性中 target 出现的顺序依次执行每个 target 。被依赖的 target 会先执行。
if:用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行。
unless:该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。
description:该属性是关于 target 功能的简短描述和说明。

property元素
property元素可看作变量或者参数的定义
例如<property name ="name" value ="philander"/>
若要在外部引入某文件,例如 build.properties 文件,可以通过如下内容将其引入<property file="build.properties"/>。

Ant常用命令:
tstamp 时间格式化
<tstamp>
		<format property="time" pattern="yyyyMMddHHmmss" />
</tstamp>

执行那些任务
<target name="run">
		<antcall target="test"/>
		<antcall target="report"/>
</target>
copy 拷贝文件
复制单个文件
<copy file="original.txt" tofile="copied.txt"/>
对文件目录进行复制:
<copy todir="${jmeter.result.html.dir2}">
        <fileset dir="${jmeter.home}/extras">
            <include name="collapse.png" />
            <include name="expand.png" />
            <exclude name="**/*.class"/>
        </fileset>
</copy>
将文件复制到另外的目录:
 <copy file="source.txt" todir="../target/"/>

delete 删除文件
 对文件或目录进行删除
删除某个文件:
<delete file="/home/photos/philander.jpg"/>

删除某个目录:
<delete dir="/home/photos"/>

 删除所有的备份目录或空目录:
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.bak"/>
</delete>

 mkdir 创建目录
 <mkdir dir="/home/test"/>

move 移动文件或者目录
<move file="sourcefile" tofile="destfile"/>

移动单个文件到另一个目录:
<move file="sourcefile" todir="movedir"/>

移动某个目录到另一个目录:
<move todir="newdir"> <fileset dir="olddir"/></move>

 echo 命令
 该任务的作用是根据日志或监控器的级别输出信息
 它包括 message 、 file 、 append 和 level 四个属性,举例如下
<echo message="Hello,ANT" file="/home/logs/ant.log" append="true">

javac 编译
 <javac srcdir="${basedir}/src" destdir="${basedir}/WebRoot/WEB-INF/classes" target='1.7' source="1.7" encoding="utf-8" debug="true" 
     includeantruntime="false">
			 <!-- <compilerarg line="-encoding UTF-8 "/> -->
            <classpath>
                <fileset dir="${basedir}/WebRoot/WEB-INF/lib">
                            <include name="**/*.jar"/>
                 </fileset>
            </classpath>
  </javac>

java命令执行Java程序
<java classname ="HelloWorld">
    <classpath>
         <pathelement path="${basedir}/build/classes"/>
    </classpath>
 </java>
    
使用war命令打包JavaEE项目
<target name ="war" depends ="compile">
    <war destfile ="${build}/WebTest.war" webxml ="${basedir}/WebContent/WEB-INF/web.xml">
        <!-- 拷贝WebRoot 下除了WEB-INF 和META-INF 的两个文件夹-->
        <fileset dir ="${basedir}/WebContent" includes ="**/*.jsp"/>
        <!-- 拷贝lib 目录下的jar 包-->
        <lib dir ="${lib}"/>
        <!-- 拷贝build/classes 下的class 文件-->
        <classes dir ="${classes}"/>
    </war>
</target>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值