当你使用默认排除模式的时候,Maven Assembly插件不仅仅会忽略SVN和CVS信息。默认情况排除拥由Codehaus中plexus-utils项目的DirectoryScanner类定义。这个排除模式的数组被定义为一个static, final的String数组,其名称为DEFAULTEXCLUDES。该变量的内容如Example 12.8, “Plexus Utils中模式排除模式的定义”所示。
Example 12.8. Plexus Utils中模式排除模式的定义
public static final String[] DEFAULTEXCLUDES = { // Miscellaneous typical temporary files "**/*~", "**/#*#", "**/.#*", "**/%*%", "**/._*", // CVS "**/CVS", "**/CVS/**", "**/.cvsignore", // SCCS "**/SCCS", "**/SCCS/**", // Visual SourceSafe "**/vssver.scc", // Subversion "**/.svn", "**/.svn/**", // Arch "**/.arch-ids", "**/.arch-ids/**", //Bazaar "**/.bzr", "**/.bzr/**", //SurroundSCM "**/.MySCMServerInfo", // Mac "**/.DS_Store" };
这个默认的模式数组会排除来自于如GNU Emacs的编辑器的临时文件,Mac中常见的临时文件,以及一些常见源码控制系统的元数据文件(虽然Visual SourceSafe得到的更多的是恶名而非源码控制系统)。如果你需要覆盖这个默认的排除模式,你可以将setDefaultExcludes设置成false,然后在你自己的套件描述符中定义一组排除模式。