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

joh*_*ode 3 java ant build

得到以下build.xml字符串:

<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Pet*_*ich 5

是的,使用您的代码排除所有Java文件.看看模式定义:这个页面解释了很好的,Ant模式是如何工作的.它还包含很多说明它的例子.模式随处可用,所以如果你继续使用Ant,你真的需要理解它们.

**基本上意味着每一个子目录.并且/*.java表示这些目录中的每个Java文件.


Muk*_*oel 5

首先是关于声明

<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

现在回答你的问题

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

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