Ant <jar> 任务:使用 excludes 参数



有一个以下构建.xml字符串:

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

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

谢谢。

首先关于语句

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

此目标用于将文件打包到 JAR 存档中

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

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

排除 :这用于从 basedir 中排除包 (jar) 中不需要的文件

现在回答您的问题

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

编辑:这个 exclude="*/.java" 通常用于排除 jar 中的源代码,这些源代码将被使用、分发、导出等

是的,使用您的代码时,所有 Java 文件都被排除在外。看看模式定义:这个页面很好地解释了 Ant 模式是如何工作的。它还包含许多说明它的示例。模式无处不在,所以如果你继续使用 Ant,你真的需要了解它们。

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

<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 结尾的文件(以及默认排除除外)

最新更新