很土的名字:ant学习笔记.

         前天公司给任务,用ant写个build.xml把项目编译出来,以前倒是用过那么一次,当时也就做了一例子,现在也忘的差不多了,这俩天算是检回来,下面是我做出来后的一些心得一笔记,供自己复习,如果有些地方能帮到人的那最好.

        ant实际上是把java在命令行下的java,javac,javadoc 这些命令集成到它(缺省为build.xml)下面了,当然不止这些命令,只是举个例子.

        当编译build.xml时,ant就在dos命令下把程序员在build.xml里面执行的任务解析出来.

        所以可以把ant看成是jdk和dos的一个中间件,在没有ant和make等之前,直接在dos编译,在有ant后,以jdk为基础,通过build.xml向dos发送命令完成任务(target),这是整体的理解.

        我项目里大概分为以下几个步骤:

       1.clear:清空编译后的项目和war包.

       2.init:建编译时需要的目录.

       3.copy:把jsp,javascript等文件直接copy到编译后的项目里(该项目和webapps/下面的结构一样).

       4.compile:执行编译.

       5.war:打war包.

       当然还有一些其他的功能,比如上传file,打jar包的等.

       在这几个步骤中遇到一些问题,需要注意的列出来:

       1.project下的basedir属性:通常定位为. 表示前目录,也就是build.xml所在的目录.也可以定义其他目录为根目录.

       2.compile时,如果出现编码问题,则设置   <compilerarg line="-encoding UTF-8 "/>

       3.如果报错为编码问题UTF-8 则把文件里的内容copy出来再重新建一个, 再重新copy进去就OK!

       4.classpath类路径指的jar包的路径.在<target classpathref = "id">

       <path id = "id">

       ......设置classpath路径

       <fileset dir = "${classpath}/lib"/>

       </path>

        5.tomcat下的servlet-api.jar包和jsp-api.jar包需要从tomcat里导,或者拷贝到项目里面 把tomcat/common/lib下的2个jar删掉,不然出现冲突,导致加载不了.

        6.注意:类不安全问题通过下面这个命令查看,一般是没有定义范型.
         <compilerarg value="-Xlint:unchecked"/>

        7.打war包时,出现The name is undefined 则检查<war>是否包住了<lib>和<classes></war>

         我就是写错了<war/><classes/><lib/>导致花了一晚上没找到.

        8.从命令行传递参数:ant buildfile test.xml -Dversion=1.1 war

        上面的意思是编译test.xml的文件,version的值为1.1 编译到target为war的任务为止.

         接参数时用<property name = "version" value = "xxx"/>

         如果没传参默认为xxx 传了以后${version}值就为1.1  

        9.判断用<condition name = "test">这里面有<equals>判断字符串,其他的可以判断图片等...</condition>

        此时test有值.为true或者false

       <target if = "test" >

       则为true时编译这个任务.

       或者 unless  = "test"

       则为false时编译这个任务.

 

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值