包括和排除工件

目前包含/排除格式基于依赖冲突 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-197useProjectArtifactuseProjectAttachments添加到dependencySet配置。

有关默认值以及如何配置它们,请参阅程序集描述符格式。