问题描述
我处理的项目包括一个主模块和其他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>