3

我对 Maven 很陌生,我注意到 Maven WAR 插件中有一件有趣的事情。

当我使用 war:war 打包我的 Java Web 应用程序时,会创建一个压缩的战争。这场战争还包含 META-INF 目录中的 pom.xml 和 pom.properties 文件。但是如果我用 war:exploded 打包我的应用程序并创建一个爆炸的 war 目录,这两个文件将不会被包含在内。

现在我很好奇,为什么 pom.xml 和 pom.properties 没有打包到爆炸战争中。除了这两个文件外,exploded 和 zipped war 的内容是相同的。

插件从爆炸战争中省略 pom.xml 和 pom.properties 有什么原因吗?

4

2 回答 2

3

插件从爆炸战争中省略 pom.xml 和 pom.properties 有什么原因吗?

pom.propertiespom.xml文件添加到生成的存档中的“组件”war:warMaven Archiver。您可以使用archive可选参数对其进行配置。

有趣的是,war:exploded也有这个参数,但目前war:exploded没有处理<archive>(参见MWAR-86 的这个评论),并且爆炸的战争目前与最终战争不完全匹配。


但是如果没有 pom 文件,我就无法在本地 JBoss 上运行爆炸式的战争。所以我也无法测试和调试它。

位于存档中的 pom 文件和位于存档中META-INF/maven/${groupId}/${artifactId}/pom.xmlpom.properties文件META-INF/maven/${groupId}/${artifactId}/pom.properties是可选的“元数据”,我不知道有任何插件依赖于它们的存在。所以我不明白为什么你不能在你当地的 JBoss 上发动爆炸式的战争。你能详细说明吗?

于 2010-04-21T14:35:40.627 回答
0

mvn war:war 旨在创建一个可部署的工件,该工件需要内部信息(pom,MANIFEST.MF 也是如此)......但 war:exploded 仅用于测试(部署到特定文件夹中)。看看解释

于 2010-04-21T08:41:02.733 回答