微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在生成的WAR中不包含jar,而在META-INF上的pom中也包含版本?

如何解决有没有办法在生成的WAR中不包含jar,而在META-INF上的pom中也包含版本?

我处理的项目包括一个主模块和其他4个模块,每个模块都有其pom

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

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

Web模块是我们导出为WAR的模块,生成时会将其POM包含在meta-inf中。

场景1

是否有一种生成WAR文件的方式,除了与其他模块相对应的jar之外,它不包含所有jar?

我已经看到一些解决方案,这些解决方案涉及添加Maven EAR定义,但这是一个艰苦的过程,并且总的来说并不会导致项目文件更小。

场景2

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

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。