`

Ant开发二(只求最好)

阅读更多

看后要回帖的(绝对经典)

首先先介绍一下ant的工程标签

<project name="" default="" basedir="" >

    ................

</project>

 

上面的就是ant的工程标签了

中 name是工程的属性名,当ant开始时,会显示工程名,default标签是默认运行的target(任务),就是ant运行这个build时,会默认 的找到那个target,然后执行它。 basedir标签一般都是"." 也就是查找project时的基本路径用”.“查找

下面介绍project内部的标签和属性:

1.数据元素(英文翻译)DataElement

特性:property 和DataType类型(很像全局变量和局部变量,大家都能用到,我是这么理解的)

举个很简单的小例子:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="prepare" name="Testproperty">
        <property name="prop1" value="It is my first property" />
	<property name="prop2" value="${prop1}+It is my second property" />
        <property name="prop3" value="${prop2}: It is my third property" />
        <property file="conf/log4j.properties" />
        <property name="build.dir" value="build" />
        <property name="lib.dir" value="${build.dir}/lib" />
        <!-- The DataType value-->
        <path id="classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

        <!-- Create a  file of build-->
        <target name="prepare">
		<mkdir dir="${build.dir}" />
	</target>
</project>
 

下面分析一下:

project 标签就不说了

1.property标签有3个属性:

  • name------------------------property的名字
  • value------------------------property的值
  • file---------------------------显示的导入文件(同java的System.setproperty()方法)

2.DataType是定义的属性

像path ,fileset ,src 都是DataType类型,指定的类型。。

说明下path的作用:

是将build/lib包下的所有jar文件全部包含进来。。。。。

3.Target标签了,也是project下用的最多,也是最重要的 。。。project标签必须有个默认的target,上面的target的作用是,在build.xml目录下创建一个build目录,就是顶级目录下创建build目录。。

 

很简单的例子,但很能说明一个问题:DataType包含property,有些复杂的property可以很简单的用DataType解决

很强大。。

下面我发个比较复杂的例子,然后具体分析下target的标签

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- Comment are just as important in build files ,do not avoid writing them! -->
<!-- Example build file for "Ant : The Definitive Guide" and its sample project: 
	AntDemo3" -->

<project name="AntDemo3" default="all" basedir=".">
	<!-- Project-wide setting .All directories are relative to the project root 
		directory -->
	<!-- Project directory -->
	<property name="src.dir" value="src" />
	<property name="doc.dir" value="src" />
	<property name="dist.dir" value="src" />
	<property name="lib.dir" value="src" />
	<property name="bin.dir" value="src" />
	<!-- Temporary build directory names -->
	<property name="build.dir" value="build" />
	<property name="build.classes" value="${build.dir}/classes" />
	<property name="build.doc" value="${build.dir}/doc" />
	<property name="build.lib" value="${build.dir}/lib" />

	<!-- Global setting -->
	<property name="javac.debug" value="on" />
	<property name="debug.flag" value="on" />
	<property name="java.lib" value="${java.home}/jre/lib/rt.jar" />

	<!-- Global "magic" property for <javac> -->
	<property name="build.compiler" value="modern" />

	<!-- DataType for lib of classpath -->
	<path id="classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<!-- Target to create the build directories prior to a compile target -->
	<!-- We also mark the start time of the build ,for the log. -->
	<target name="prepare">
		<mkdir dir="${build.dir}" />
		<mkdir dir="${build.lib}" />
		<mkdir dir="${build.classes}" />
		<mkdir dir="${build.classes}/modules" />
		<tstamp />
		<echo message="${TSTAMP}" />
	</target>
	
	<!-- Build the application -->
	<target name="application" depends="prepare">
		<!-- Compile the application classes,not the module classes -->
		<javac destdir="${build.classes}" debug="${debug.flag}"
			deprecation="on">
			<!-- We could have used javac's srcdir attribute -->
			<src path="${src.dir}" />
			<exclude name="AntDemo3/modules/**" />
			<classpath refid="classpath" />
		</javac>
		<!-- Package the application into a JAR -->
		<jar jarfile="${build.lib}/ AntDemo3.jar " basedir="${build.classes}">
			<exclude name="AntDemo3/modules/**" />
		</jar>
	</target>
	
	<!-- Build the modules -->
	<target name="modules" depends="prepare,application">
		<!-- Compile just the module classes -->
		<javac destdir="${build.classes}/modules" debug="${debug.flag}"
			deprecation="on">
			<!-- We could have used javac's srcdir attribute -->
			<src path="${src.dir}" />
			<exclude name="AntDemo3/modules/**" />
			<classpath refid="classpath" />
		</javac>
		<!-- Package the modules as a JAR -->
		<jar jarfile="${build.lib}/ modules.jar " basedir="${build.classes}">
			<exclude name="AntDemo3/modules/**" />
		</jar>
	</target>
	<!-- Do all  -->
	<target name="all" depends="modules,application" />
	
	<!-- Generate the API documentation AntDemo3 and the modules -->
	<target name="javadoc" depends="application" >
		<mkdir dir="${doc.dir}/api"></mkdir>
		<javadoc packagenames="AntDemo3.*" 
				 sourcepath="${src.dir}" 
				 destdir="${doc.dir}/api"
				 author="true"
				 version="true"
				 use="true" >
			<classpath refid="classpath" />	 
		</javadoc>
	</target>
	
	<!-- Delete class files build during previous builds.leave directories -->
	<target name="clean">
		<delete>
			<fileset dir="${build.classes}" includes="**/*.class" />
		</delete>
	</target>
	
	<!-- Delete any created directories and their contents  -->
	<target name="cleanall" depends="clean" >
		<delete dir="${build.dir}" />
		<delete dir="${dist.dir}" />
		<delete dir="${doc.dir}/api" />
	</target>
	
	<!-- Deploy the application in a "ready-to-run" state -->
	<target name="deplpy" depends="application,javadoc" >
		<!-- Create the distribution directory -->
		<mkdir dir="${dist.dir}" />
		<mkdir dir="${dist.dir}/bin" />
		<mkdir dir="${dist.dir}/lib" />
		<mkdir dir="${dist.dir}/doc" />
		<mkdir dir="${dist.dir}/config" />
		<!-- Copy the primary program and modules -->
		<copy todir="${dist.dir}/lib" >
			<fileset dir="${build.classes}" />
			<fileset dir="${build.lib}" includes="AntDemo3.jar" />
			<fileset dir="${build.lib}" includes="modules.jar" />
			<fileset dir="${lib.dir}" includes="*.jar" />
		</copy>
		<!-- Copy the documentation -->
		<copy todir="${dist.dir}/doc" >
			<fileset dir="${doc.dir}" />
		</copy>
		<!-- Copy the pre-fab configuration files -->
		<copy todir="${dist.dir}/config">
			<fileset dir="${lib.dir}" includes="*.xml" />
		</copy>
		
		<!-- Copy the running scripts -->
		<copy todir="${dist.dir}/bin" >
			<fileset dir="${bin.dir}" includes="*.script" />
			<fileset dir="${bin.dir}" includes="*.bat" />
		</copy>
	</target>
</project>
 

以上很多但很简单。。。希望能仔细阅读

 

分析:

 

首先分析下ant的错误级别:

看懂了错误才能做修正。。。。嘿嘿

 

1.工程级错误,也就是project标签内的错误,ant遇到错误会立即停止,如果你其中一个target写错了,那么ant会认为这次的执行失败,会导致不可预料的错误和时间资源的浪费。。

2.目标级错误,也就是target标签内的错误,ant遇到不会停止任务,只会报错,也很好解决。。。

还有一点要说明一下:

ant是按顺序执行的,如果你要颠倒顺序的话,有些变量是不能识别的。。注意

 

说说一些标签的用处:

src (DataType) == srcdir属性

destdir----------------------编译后class类的放置目录

excludes--------------------不包含name的东西(可能是目录和文件)

refid--------------------------找寻上面定义的id

debug------------------------是否debug(值是boolean类型)

deprecation-----------------是否用到过期类(值是Boolean类型)

echo--------------------------给log输出信息

jarfile-------------------------打包后jar的位置目录

basedir----------------------目标目录

todir--------------------------目标目录

delete------------------------删除

failonerror-------------------Ant将一个失败的copy也看做是成功的。(属性)

 

上面初步的介绍了ant的标签和属性,其实到这,ant你也能写东西了,如果还想研究的话。。请看ant开发3。。。。。。

1
1
分享到:
评论

相关推荐

    开发工具 ant-1.9.6

    开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6...

    J2EE开发之ant开发工具

    Ant是Apache软件基金会下的一个项目,它是一款强大的Java构建工具,尤其在J2EE应用程序的开发中发挥着至关重要的作用。Ant以其XML为基础的构建文件(build.xml)为特色,使得构建过程可配置且可重复执行,从而极大地...

    ant 开发及整合 源码 实例

    Apache Ant 是一个由Java编写的开源构建工具,它在软件开发过程中扮演着自动化任务执行的角色,比如编译、打包、测试和部署等。Ant 的核心理念是基于XML的构建文件(通常命名为build.xml),其中定义了一系列的任务...

    ANT 快速参考(OSSEZ)开发文档很详细

    ant快速参考(OSSEZ) ant开发文档 很详细很具体

    ant开发工具

    在Java开发中,Ant以其灵活性和可扩展性而受到广泛欢迎,它使用XML来描述构建过程,允许开发者定义任务、目标和依赖关系,使得自动化编译、测试、打包等流程变得简单易行。 标题"ant开发工具"指的是Ant作为开发者...

    使用Ant进行java开发

    虽然现代Java开发中,如Maven和Gradle等构建工具的流行度已经超越了Ant,但Ant由于其历史的悠久和简单易学的特点,仍然在一些项目和团队中保持着活跃地位。因此,掌握Ant对Java开发者来说,仍然是一个十分有帮助的...

    ant开发指南用于说明ant一些相关信息

    二、Ant基础知识 1. **构建文件(build.xml)**:这是Ant的核心配置文件,所有构建规则都定义于此。构建文件采用XML格式,易于阅读和维护。主要元素包括`&lt;project&gt;`、`&lt;target&gt;`、`&lt;task&gt;`等,用于组织和执行构建...

    Android Ant 开发入门教程

    ### Android Ant 开发入门教程 #### 一、概述 随着移动互联网的发展,Android 成为了最受欢迎的移动操作系统之一。为了能够高效地开发出高质量的应用程序,开发者们常常会选择使用不同的工具和框架来加速开发流程...

    如何使用ANT开发Java程序

    ### 如何使用ANT开发Java程序 #### 一、前言 Apache Ant 是一款开源的Java构建工具,用于自动化软件构建过程中的编译、测试、部署等任务。它使用XML格式来定义构建规则,并通过一系列预定义的任务来执行这些规则。...

    贯通Java Web开发三剑客:Eclipse+Tomcat+Ant整合开发.part2.rar

    《贯通Java Web开发三剑客:Eclipse+Tomcat+Ant整合开发》.part2.rar

    为Weblogic 配置ANT 开发环境

    为Weblogic 配置ANT 开发环境

    ant ant ant ant

    "Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...

    开发工具 ant-launcher-1.9.6

    开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ant-launcher-1.9.6开发工具 ...

    ejb3+ant开发实例

    在工作之余整理出了基于ejb3的简单企业级开发demo,本实例采用了两个项目来实现(一个客户端和一个服务器端),并且采用ant进行打包、部署,默认采用oracle11g数据库 客户端可以安装到任何java web服务器中(例如...

    Ant应用开发指南(学习ant的必备资料)

    《Ant应用开发指南》是IT领域中针对Ant构建工具的一份详尽的教程与资源,旨在帮助开发者深入了解并掌握Ant的使用方法与实践技巧。Ant,最初作为一个缩写代表“Another Neat Tool”,是一个功能强大的构建工具,尤其...

    AntDesignPro开发手册.doc

    AntDesignPro 开发手册 AntDesignPro 是一个前端设计解决方案,由蚂蚁金服体验技术部出品/维护。核心技术组成包括 ES2015+ JavaScript 语言的新标准、React 用于构建用户界面的 JavaScript 库、dva 是基于(redux...

    使用 Eclipse 和 Ant 进行 Python 开发

    本主题将深入探讨如何利用集成开发环境(IDE)Eclipse 和构建自动化工具 Ant 来进行 Python 项目的开发。Eclipse 是一个广泛使用的开源 IDE,最初是为 Java 开发设计的,但通过插件扩展,它也支持多种其他语言,包括...

    ANT+协议 VS2015源文件

    ANT+协议是一种无线通信协议,主要用于运动健康和健身设备之间的数据传输。...同时,这个项目也可能为其他开发者提供了一个起点,他们可以在此基础上进行二次开发,创建更复杂、个性化的ANT+设备管理工具。

    基于vue Ant-Design 的表单设计器,快速开发.zip

    基于vue Ant-Design 的表单设计器,快速开发.zip基于vue Ant-Design 的表单设计器,快速开发.zip基于vue Ant-Design 的表单设计器,快速开发.zip基于vue Ant-Design 的表单设计器,快速开发.zip基于vue Ant-Design ...

    ant ant下载与配置

    ant ant下载 ant配置ant ant下载 ant配置ant ant下载 ant配置

Global site tag (gtag.js) - Google Analytics