程序集描述符:独占解包?
Assembly descriptor: Unpack-include exclusively?
描述
在处理大型多模块项目时,我发现了一个自定义 Assembly Descriptor 文件。我不完全理解的是以下内容,尤其是 includes
部分。
<assembly [...]>
[...]
<dependencySets>
<dependencySet>
<scope>provided</scope>
<unpack>true</unpack>
<unpackOptions>
<includes>
<include>defaults*.properties</include>
</includes>
</unpackOptions>
<outputFileNameMapping>
${artifact.artifactId}
</outputFileNameMapping>
<includes>
<include>${project.groupId}:[project]-settings</include>
</includes>
</dependencySet>
</dependencySets>
[...]
</assembly>
assembly documentation 将 include
部分描述为“文件 and/or 目录模式,用于在解压缩时从存档中包含匹配项目”。
dependencySet
的 includes
属性 documentation 声明如下:
If none is present, then represents all valid values.
问题
include
是否独占?因此,我是否可以期望 只有 而 defaults*.properties
被视为 provided
(根据此特定部分)?
unpackOptions-includes
如何干扰基本includes
(dependencySet
的最后一节)?
How do unpackOptions-includes
interfer with the basic includes
(last section of dependencySet
)?
他们控制着两种截然不同的事物,互不干扰:
- 在
unpackOptions
中包含对工件中的哪些文件进行解压的控制。在您的示例中,这意味着在具有范围 provided
的每个依赖项中,只有与模式 defaults*.properties
匹配的文件将被解压缩并因此保留。
- 在
dependencySet
中包含控制要包含在此集合中的工件。在您的示例中,只有匹配 ${project.groupId}:[project]-settings
的工件将包含在此集合中。
最后,您拥有的程序集描述符将考虑名称匹配 ${project.groupId}:[project]-settings
的每个 provided
依赖项。在这些工件中的每一个中,它将解压所有匹配模式 defaults*.properties
.
的文件
Does include
work exclusively?
是的。默认情况下,一切都包括在内。如果您覆盖该配置,将包含您在此标记中配置的内容。同样,默认情况下,不会排除任何内容(如果您覆盖该配置,请注意排除规则适用于之前包含的内容)。
描述
在处理大型多模块项目时,我发现了一个自定义 Assembly Descriptor 文件。我不完全理解的是以下内容,尤其是 includes
部分。
<assembly [...]>
[...]
<dependencySets>
<dependencySet>
<scope>provided</scope>
<unpack>true</unpack>
<unpackOptions>
<includes>
<include>defaults*.properties</include>
</includes>
</unpackOptions>
<outputFileNameMapping>
${artifact.artifactId}
</outputFileNameMapping>
<includes>
<include>${project.groupId}:[project]-settings</include>
</includes>
</dependencySet>
</dependencySets>
[...]
</assembly>
assembly documentation 将 include
部分描述为“文件 and/or 目录模式,用于在解压缩时从存档中包含匹配项目”。
dependencySet
的 includes
属性 documentation 声明如下:
If none is present, then represents all valid values.
问题
include
是否独占?因此,我是否可以期望 只有 而 defaults*.properties
被视为 provided
(根据此特定部分)?
unpackOptions-includes
如何干扰基本includes
(dependencySet
的最后一节)?
How do
unpackOptions-includes
interfer with the basicincludes
(last section ofdependencySet
)?
他们控制着两种截然不同的事物,互不干扰:
- 在
unpackOptions
中包含对工件中的哪些文件进行解压的控制。在您的示例中,这意味着在具有范围provided
的每个依赖项中,只有与模式defaults*.properties
匹配的文件将被解压缩并因此保留。 - 在
dependencySet
中包含控制要包含在此集合中的工件。在您的示例中,只有匹配${project.groupId}:[project]-settings
的工件将包含在此集合中。
最后,您拥有的程序集描述符将考虑名称匹配 ${project.groupId}:[project]-settings
的每个 provided
依赖项。在这些工件中的每一个中,它将解压所有匹配模式 defaults*.properties
.
Does
include
work exclusively?
是的。默认情况下,一切都包括在内。如果您覆盖该配置,将包含您在此标记中配置的内容。同样,默认情况下,不会排除任何内容(如果您覆盖该配置,请注意排除规则适用于之前包含的内容)。