bom覆盖顺序(具有重叠bom)

cygmwpex  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(364)

我有一个家长pom和一个普通的maven项目。
两者都在其dependencymanagement中定义BOM。在某些情况下,这些BOM表可能重叠,例如,两者都指定了log4j的版本。
根据我的测试,似乎:
对于父pom中的重叠BOM,第一个BOM获胜,即为工件提供版本。
如果子级bom表与父级bom表重叠,则子级bom表的版本将获胜。
不幸的是,我没有找到任何关于这方面的文档。
我说得对吗?我能相信这种行为吗?

dojqjjoe

dojqjjoe1#

日志框架通常位于实际代码的“旁边”,所以如何处理这个问题有点不清楚。
我发现,将构建阶段依赖项与部署阶段依赖项分离对我来说很有效。
基本思想是,您编写的代码只需要依赖于日志框架的api(slf4j过去是一个自然选择),然后您就有了几个部署maven配置(一个用于jboss,一个用于websphere,一个用于在ide中运行等),在这些配置中您添加了与该部署相关的依赖项。
因此,我的建议是相应地更改您的代码库,使日志框架只具有api依赖项,然后为每个实际部署类型创建一个新的maven项目。如果需要,您可能还希望烘焙特定于部署的配置文件。

相关问题