目前包含/排除格式基于依赖冲突 id,其形式为:groupId:artifactId:type:classifier。也可以使用groupId:artifactId的缩短形式的依赖冲突 id 。
包含/排除的检查是基于依赖冲突 id 或作为String.equals()的缩短形式完成的,因此它必须是相同的匹配项才能被包含或排除。目前不支持正则表达式。
此示例从程序集中排除 log4j 和 commons-lang jar 文件。当您正在构建一个包含子发行版(即其他已组装的 zip 或 tars)的超级发行版程序集时,这将很有用,而在您的 pom 中,您依赖于这些发行版。但是因为分发依赖于项目的依赖关系,所以程序集还包括 jar 文件(它们已经在程序集中,不需要复制)
您的 pom 可能包括以下内容:
<dependencies> <dependency> <groupId>YOUR GROUP</groupId> <artifactId>YOUR ARTIFACT</artifactId> <version>YOUR VERSION</version> <classifier>bin</classifier> <type>zip</type> </dependency>
然后在您的程序集中排除从二进制程序集中引入的所有 jar 依赖项。在此示例中,commons-lang 和 log4j jar 被不必要地包含(因为它们已经在 bin.zip 文件中)
<dependencySets> <dependencySet> .... <excludes> <exclude>commons-lang:commons-lang</exclude> <exclude>log4j:log4j</exclude> </excludes> </dependencySet> .... </dependencySets>
MASSEMBLY-197将useProjectArtifact和useProjectAttachments添加到dependencySet配置。
有关默认值以及如何配置它们,请参阅程序集描述符格式。