我有一个多模块 Maven 项目。其中一个模块负责将所有其他模块的输出打包成一个可交付成果。我目前遇到了一个问题,我的程序集无法从其他模块收集输出,失败并显示以下消息:
[WARNING] The following patterns were never triggered in this artifact
inclusion filter:
o '*:a'
我的项目布局的简化版本如下所示,其中moduleA
是一个构建标准 jar-with-dependencies 输出的项目,并且moduleB
是我负责打包的模块。根级pom.xml
列表moduleA
和moduleB
模块。
parent
|- moduleA (foo:a)
|- pom.xml
|-src
|- ...
|- moduleB (foo:b)
|- pom.xml
|- src
|- main
|- assembly
|- assembly.xml
|- pom.xml
我已经为它创建了一个程序集描述符moduleB
,目前看起来像这样:
<assembly>
<id>dist</id>
<formats>
<format>tar.gz</format>
</formats>
<moduleSets>
<moduleSet>
<includes>
<include>*:a</include>
</includes>
<binaries>
<attachmentClassifier>jar-with-dependencies</attachmentClassifier>
<outputDirectory>package</outputDirectory>
<dependencySets>
<dependencySet>
<excludes>
<exclude>*:*</exclude>
</excludes>
</dependencySet>
</dependencySets>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
我还列出了in的文件(编译范围)moduleA
的依赖项。我这样做是因为我相信它会强制在之后建造;它似乎工作。moduleB
moduleB
pom.xml
moduleB
moduleA
任何人都可以建议为什么我的moduleB
程序集没有收集来自 jar-with-dependencies 输出moduleA
并抱怨该模式从未被触发?
我曾尝试指定moduleA
(而不是使用通配符)的 groupId,但它没有帮助。我还尝试将程序集描述符简化moduleB
如下,但结果没有任何变化:
<assembly>
<id>dist</id>
<formats>
<format>tar.gz</format>
</formats>
<moduleSets>
<moduleSet>
<includes>
<include>foo:a</include>
</includes>
<binaries>
<outputDirectory>package</outputDirectory>
<dependencySets></dependencySets>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
新:可以在此处找到此问题的 SSCCE:http ://dl.dropbox.com/u/108474287/parent.zip
Maven版本:Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100)