【问题标题】:Is there a way for not including jars in a generated WAR while also including the version in the pom on META-INF?有没有办法在生成的 WAR 中不包含 jar,同时在 META-INF 的 pom 中包含版本?
【发布时间】:2020-12-13 10:07:38
【问题描述】:

我参与的项目由一个主模块和 4 个其他模块组成,每个模块都有自己的 pom

  • 主要
  • B
  • C
  • D
  • 网络

主模块在 DependencyManagement 的 POM 中列出了所有依赖项以及版本。 其余的仅包括其 POM 上的 Dependencies 中的库没有版本号。

Web 模块是我们作为 WAR 导出的模块,它在生成时会在 META-INF 中包含其 POM。

场景 1

有没有办法生成一个不包含所有 jar 的 WAR 文件,除了对应于其他模块的那些?

我看到一些解决方案提到添加 Maven EAR 定义,但这是一个艰苦的过程,而且总体上不会产生更小的项目文件。

场景 2

否则,如果没有办法通过POM实现,有没有办法至少将主模块中包含的版本号反映到WAR的META-INF pom上?

在这种其他情况下,至少我可以通过脚本删除 jar 文件,然后在目标计算机上运行 copy-dependencies maven 命令,而不是花费额外的时间来发送可能在那里的 jar 文件。

【问题讨论】:

    标签: java maven jar pom.xml war


    【解决方案1】:

    您可以通过将其范围更改为提供来防止不需要的 jar 包含在最终的 WAR 文件中

        <dependency>
            <groupId>groupId</groupId>
            <artifactId>artifactId</artifactId>
            <version>version</version>
            <scope>provided</scope>
        </dependency>
    

    【讨论】:

      猜你喜欢
      • 2016-12-14
      • 1970-01-01
      • 2013-02-07
      • 2022-07-18
      • 1970-01-01
      • 2023-01-06
      • 1970-01-01
      • 2014-10-07
      • 2012-09-28
      相关资源
      最近更新 更多