如果您查看内置的生命周期参考,您会发现<packaging>war</packaging>生命周期中的任何一点都不是war:manifest绑定到任何阶段的目标。
因此,默认情况下,此目标不会执行(除非您添加执行)。
如果在目标执行时有一个MANIFEST.MF文件,它将使用该文件,而不是动态生成文件并将其直接嵌入到文件中,而无需创建中间文件。${basedir}/src/main/webapp/META-INF/MANIFEST.MFwar:warMANIFEST.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文件。