classpath

<classpath>
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
<dirset dir="${build.dir}">
<include name="apps/**/classes"/>
<exclude name="apps/**/*Test*"/>
</dirset>
<filelist refid="third-party_jars"/>
</classpath>
对于classpath标签的两个属性——path和location:
按照官网上的解释:
location的值可以是一个文件(file),也可以是一个相对于当前根目录(project的basedir)的文件夹(directory),或者是一个带有绝对路径的文件(文件夹)
path则表示的是一系列的用分号(“;”)或冒号(“:”)分隔开的location值。

当然,也可以如上所示,在classpath标签中使用fileset、dirset,这样省事不少。

在上面的代码中还提到了一个filelist标签。它代表了一组文件,相当于一个文件集合。但是这个文件集合中的文件并不是一定会存在。filelist的使用方式如下:
<filelist
id="docfiles"
dir="${doc.src}"
files="foo.xml,bar.xml"/>
<filelist
id="docfiles"
dir="${doc.src}">
<file name="foo.xml"/>
<file name="bar.xml"/>
</filelist>
<!-- 其中的${doc.src}/foo.xml,${doc.src}/bar.xml并不一定会存在地 -->


ant手册中的ant配置classpath采用classpath标签,可是我发现这样配置总是不好用,还是直接用path可以使用
设置classpath的方法有多种
<path id="project.classpath">
1<pathelement path="${basedir}/lib/aa.jar"/>
2<pathelement location="aa.jar"/>与1的区别在于location可以去当前路径,当然可以使用绝对路径
3<filelist id="file" dir="${basedir}/lin">
<file name="a.jar"/>
<file name="d:lib/b.jar"/>
</filelist>
4<fileset dir="d:/lib">
<include name="**/*.jar"/>
</fileset>
5手册上说了dirset也好用,但是我测试了还是不要用的
</path>
下面说classpath的使用
样例如下
<javac scdir="./src" destdir="./classes">
<classpath refid="project.classpath"/>
</javac>


下面是比较四种方式的优缺点
第一种调用的需要设置绝对路径适合第三方jar包
第二种则适合jar包和build.xml文件在同一目录下的情况,但是我觉得两个文件放在一起本身就不合理,估计是用的情况不多。
前两个都是设置单个jar包
第三种是一个文件集合适合引入不同路径的jar包,但是需要输入每个jar包的名字,比较繁琐,适合于jar包属于不同位置,比较分散但是不多的情况
第四种是一个文件夹,可以采用匹配模式来引入,这个适合在同一个文件夹下,文件名字比较多的情况下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值