Ant <jar>任务:使用排除参数</jar>

时间:2012-10-03 11:33:18

标签: java ant build

获得以下build.xml字符串:

<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />

我是Ant的新手,我不明白如何排除字符串的工作原理。哪些文件受到影响?所有的java源文件?

感谢。

3 个答案:

答案 0 :(得分:5)

是的,使用您的代码排除所有Java文件。 看一下模式定义:This page解释得非常好,Ant模式是如何工作的。它还包含很多说明它的例子。模式随处可用,所以如果你继续使用Ant,你真的需要理解它们。

**基本上是指每个子目录。 /*.java表示这些目录中的每个Java文件。

答案 1 :(得分:5)

首先讲述声明

<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />

此目标用于将文件打包在jar存档

destfile:指定目标文件的名称和位置,即要创建的存档

basedir:指定需要打包的文件的基本目录。请注意,将包含所有文件和子文件夹

排除:这用于排除您在包中不需要的基础文件(jar)

现在回答你的问题

上面的语句会做的是它会将classes.src中的所有文件打包到$(lib.dir)/rpt.jar,但会排除在basedir的任何子文件夹中或内部找到的任何.java文件。 / p>

编辑: 这排除=&#34; * / .java&#34;通常是为了从使用,分发,导出等的jar中排除源代码

答案 2 :(得分:2)

<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />

相当于

<jar destfile="${lib.dir}/rpt.jar">
  <fileset dir="${classes.src}" excludes="**/*.java" />
</jar>

即。它包括${classes.src}目录及其子目录中的所有文件,但以.java结尾的文件除外(default excludes除外)