目前包含/排除格式基于依赖冲突 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配置。
有关默认值以及如何配置它们,请参阅程序集描述符格式。