Ant开发三(只求最好)

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

现在我们继续。。。。

首先在你看这篇文章之前,你必须看过我前面所写的文章。如果没看过,对不起这篇文章不适合你学习技术。

这篇文章主要是讲述Ant的除了property的全局变量DataType的

DataType的种类有

  • argument                   主要是传递命令行参数的
  • environment               一看就是环境变量
  • filelist                         文件列表
  • fileset                         设置文件位置,将要传的文件组织在一起(我们在ant 开发2中已经看过了)
  • patternset                  模式组织在一起
  • filterset                       将过滤器组织在一起
  • path                            设置环境(上文已经用到)
  • mapping                      输出和输入的对应关系

现在就具体的说明上面的DataType。。。。。。

1.argument的标签为<arg>

<arg>标签主要是在apply,exec,java中使用(以上的都是标签名)

其属性名为:file,path,value,line

具体操作同在cmd中输入,如果你想在cmd中用java -version

那么ant中输入为

<arg line="java" />
<arg line="-version" />

 如果路径中有空格的话 请用value这个属性代替line。

以上也可以写成

<arg line="java -version" />

还有就是<arg path="/temp ;/tmp" />(我写的是windows的版本,主要是我Unix没用过)

相当于c:\temp ;c:\tmp

file 指定工作目录,为绝对路径

2.environment的标签为<env>

其属性名为:file,key,path,value

具体操作我举了个小例子:

2.1首先书写bat文件 如下:

@echo off
java -version
2.2然后如下创建build文件

<?xml version="1.0" encoding="UTF-8" >
<project name="environmentTest" default="test" basedir="." >
         <property environment="env" />
	 <property name="tomcat.home" value="/Apache Software Foundation/Tomcat 5.5" />
         <target name="test" depends="Check">
		<echo message="Test java -version!" />
		<exec executable="version.bat">
			<env key="TOMCAT_HOME" value="${tomcat.home}" />
		</exec>
	</target>
        <target name="Check" unless="env.ANT_HOME" >
		<fail message="ANT_HOME must be set!" />
	</target>


</project>
 

结果:

Buildfile: E:\JavaPortlet\AntDemo4\build.xml
Check:
demo:
     [echo] Test java -version!
     [exec] java version "1.6.0_19"
     [exec] Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
     [exec] Java HotSpot(TM) Client VM (build 16.2-b04, mixed mode, sharing)
BUILD SUCCESSFUL
Total time: 1 second
很简单的例子。。。。。

如果你没有配置ANTHOME的话,失败信息就是程序写的了

3.filelist 标签为<filelist>

主要是和dependset连用的

具体的是关联的,主要是更新操作如下:

<filelist dir="." id="xx" files="src.text.txt" />

<dependset >

       <srcfilesetlist refid="xx" />

       <targetfilelist dir="." files="**.xml" />

</dependset>

4.fileset 标签是<fileset>

我们经常用的,前几篇文章也写过。fileset主要是喝patternset一起用很爽的 。。。。如果想知道请给我留言

这里就不多说了,具体的请看我给的例子:

5.filterset 标签<filterset>

下面我给一个很具体的例子:

<target name="replace" >
		<tstamp>
			<format property="now" pattern="yyyy-MM-dd hh:mm:ss" />
		</tstamp>
		<mkdir dir="${src.replace}" />	
		<copy todir="${src.replace}" filtering="true" >
			<fileset dir="${src.com}" >
				<include name="**/Test.java" />
			</fileset>
			<!-- search for %date!and %copyright! -->
			<filterset begintoken="%" endtoken="!" >
				<filter token="date" value="${now}" />
				<filter token="copyright" value="Copyright (C) 2010 chenhailong" />
			</filterset>
			<filterset begintoken=" " endtoken=";" >
				<filter token="com" value=" replace;" />			
			</filterset>
		</copy>
	</target>

 说明:其中有一些变量,请自己加上后运行。。。。如果有什么不懂的,请留言。。

package com;
/**
 * %date!
 * %copyright!
 * @author chenhailong
 *
 */
public class Test {
	
	public static void main(String args[]){
		for(int i=0;i<args.length;i++){
			System.out.println(args[i]);
		}
		
	}

}
 
package replace;

/**
 * 2010-12-05 11:16:00
 * Copyright (C) 2010 chenhailong
 * @author chenhailong
 *
 */
public class Test {
	
	public static void main(String args[]){
		for(int i=0;i<args.length;i++){
			System.out.println(args[i]);
		}
		
	}

}

 Buildfile: E:\JavaPortlet\AntDemo4\build.xml
replace:
BUILD SUCCESSFUL
Total time: 1 second
实际就是filter过滤到不想要的 在进行转变

6.path标签是<path>

主要是加环境的和jar包之用。和classpath有异曲同工之效。。。

<path>
     <pathelement path="${lib.jar}" />
</path>

<classpath>
     <pathelement path="${lib.jar}" />
</classpath>

 7.mapping标签是<mapping>

mapping 用的很少 主要是和copy连用 具体的也是和copy相关。。

我给出个小例子:

<target name="backup" >
		<mkdir dir="${backup}" />
		<mkdir dir="${backup1}" />
		<copy todir="${backup}">
			<fileset dir="${src.com}" includes="**/*.java"></fileset>
			<mapper type="glob" from="*.java" to="*.java.bat" />
		</copy>
		<copy todir="${backup1}" >
			<fileset dir="${src.com}" includes="**/*.java" />
			<!-- The copy have a default of the identity -->
		</copy>
	</target>
	<target name="copy" depends="backup">
		<copy todir="${backup1}" >
			<fileset dir="${backup}" includes="**/*.*" />
			<mapper type="flatten"></mapper>
		</copy>
	
	</target>

 好了 到这就是把DataType的所有标签介绍完毕。。希望大家给我留言。。。要不真的没动力啊 哈哈。。

如果有什么问题的话也请给我留言 。。我会很快给你们答复。。

ant的开发到现在还不是很难,如果你想更细的了解的话 ,那就跟我到ant4中看看有什么可了解的 哈哈哈。。。。。。

(待续)。。。。。。。。。。。。。。

猜你喜欢

转载自chenhailong.iteye.com/blog/833572
ANT