【问题标题】:If I package a web application with the maven goal war:exploded, why won't pom.xml and pom.properties be included?如果我用 maven 目标 war:exploded 打包一个 web 应用程序,为什么不包含 pom.xml 和 pom.properties?
【发布时间】:2011-02-10 11:54:45
【问题描述】:

我对 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 有什么原因吗?

【问题讨论】:

    标签: java maven-2 war pom.xml exploded


    【解决方案1】:

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

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

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


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

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

    【讨论】:

    • 我所附加的应用程序从 pom.properties 获取信息。为什么,我实际上不知道,但是没有它们,它就不会运行。尽管如此,我已经编写了一个 Ant 脚本,它将 pom.properties 从使用 war:war 创建的压缩战争中复制到 JBoss。由于它们不会经常更改,因此我不必一直这样做。
    【解决方案2】:

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

    【讨论】:

    • 但没有 pom 文件,我无法在本地 JBoss 上运行爆炸式战争。所以我也无法测试和调试它。或者我对测试有错误的感觉......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多