获得以下build.xml字符串:
<jar destfile="${lib.dir}/rpt.jar" basedir="${classes.src}" excludes="**/*.java" />
我是Ant的新手,我不明白如何排除字符串的工作原理。哪些文件受到影响?所有的java源文件?
感谢。
答案 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除外)