ant个人关注点

  1. ant –projecthelp  :查看所有target
  2. 查看project的版本是:ant.java.version。如:<target name="targetA" if="ant.java.version">
  3. project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>
  4. Ant提供一些它自己的内置属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致,这些系统属性可参考sun网站的说明。这些内置属性

    basedirproject基目录的绝对路径,该属性在讲解project元素时有详细说明,不再赘述;

    ant.filebuildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml

    ant.versionAnt的版本,在本文中,值为1.7.0

    ant.project.name:当前指定的project的名字,即前文说到的projectname属性的值;

    ant.java.versionAnt检测到的JDK的版本,在上例运行结果中可看到为1.5

  5. property元素可用作task的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。如:
    <echo message="name: ${name}, age: ${age}"/>。

  6. <echo message="Hello,Amigo" file="log.txt" append="true"/>,是向文件log.txt后面追加信息“Hello,Amigo”,append="true"表示后面追加。
  7. <project name="javacTest"default="compile" basedir=".">
        <target name="clean">
    		<delete dir="build"/>
        </target>
    
    
        <target name="compile" depends="clean">
    		<mkdir dir="build/classes"/>
    		<javac srcdir="src" destdir="build/classes"/>
        </target>
    </project>

    上文中,target:clean,是为了让创建build文件夹成功,所以需要确保原目录下没有build文件夹。
  8. 在运行target中应该有depends="compile"属性的,表示运行的前提是编译。而现在没有,一样可以运行成功,表示:默认情况下project中的target是按顺序执行的。
    <?xml version="1.0"?>
    <project name="javacTest" default="compile" basedir=".">
        <target name="clean">
    	<delete dir="build"/>
        </target>
        <target name="compile" depends="clean">
    	<mkdir dir="build/classes"/>
    	<javac srcdir="src" destdir="build/classes"/>
        </target>
        <target name="run" >                           <!-- 这一行原来应该有“depends="compile"”属性的 -->
           <java classname="HelloWorld">
               <classpath>
                  <pathelement path="build/classes"/>
               </classpath>
           </java>
        </target>
    </project>
  9. <project name="javacTest" default="compile" basedir=".">中,basedir="."应该表示,此project的根目录就是当前目录。
  10. 问题:下面代码中,执行project时,只运行到compile,run与jar都没有运行。为什么?原因:<project name="javacTest" default="compile" basedir=".">中default的值写错了,应该是default="jar"。
    <?xml version="1.0"?>
    <project name="javacTest" default="compile" basedir=".">
    	<target name="clean">
    		<delete dir="build"/>
    	</target>
    	<target name="compile" depends="clean">
    		<mkdir dir="build/classes"/>
    		<javac srcdir="src" destdir="build/classes"/>
    	</target>
    	<target name="run" depends="compile">
    		<java classname="HelloWorld">
    			<classpath>
    				<pathelement path="build/classes"/>
    			</classpath>
    		</java>
    	</target>
    	<target name="jar" depends="run">
    		<jar destfile="helloworld1.jar" basedir="build/classes">
    			<manifest>
    				<attribute name="Main-class" value="HelloWorld"/>
    			</manifest>
    		</jar>
    	</target>
    </project>
  11. 对web工程的打包target的书写举例:
    <!-- 打war包-->
    	<target name="war" depends="compile">
    		<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
    			<!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹-->
    			<fileset dir="WebRoot" includes="**/*.jsp"/>
    			<!-- 拷贝lib目录下的jar包-->
    			<lib dir="${lib}"/>
    			<!-- 拷贝build/classes下的class文件-->
    			<classesdir="${classes}"/>
    		</war>
    	</target>
    
    
    
    
    
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值