如果您查看内置的生命周期参考,您会发现<packaging>war</packaging>
生命周期中的任何一点都不是war:manifest
绑定到任何阶段的目标。
因此,默认情况下,此目标不会执行(除非您添加执行)。
如果在目标执行时有一个MANIFEST.MF
文件,它将使用该文件,而不是动态生成文件并将其直接嵌入到文件中,而无需创建中间文件。${basedir}/src/main/webapp/META-INF/MANIFEST.MF
war:war
MANIFEST.MF
.war
据我所知,该war:manifest
目标旨在用于生成模板MANIFEST.MF
,然后您可以自定义和使用该模板。
战争插件有许多目标,我倾向于建议不要这样做:
原因是因为这两个目标都修改了src
树中的文件,这违背了仅接触文件的标准 Maven 实践target
(这非常好mvn clean
,因为您只需要删除目标)
关于您的问题,关键是您正在生成一个单独的工件。当您坚持每个 Maven 模块一个工件时,Maven 效果最好。因此,单独的工件将具有单独的模块。您只需将其添加.war
为依赖项(记住<type>war</type>
),然后使用它dependency:unpack-dependencies
来解压缩.war
文件...您可以只解压缩它META-INF/MANIFEST.MF
,如果最终如此,target/${project.build.finalName/META-INF/MANIFEST.MF
那么当您打包第二个工件时,您将确保它具有相同的清单作为你的.war
文件。