我有一个我认为是相当常见的设置。我有一个包含两个模块的项目,每个模块都有自己的 pom.xml。除此之外,我有一个项目的 pom.xml,它取决于它的子模块。这两个子模块有一个共享的依赖关系,即 log4j。我应该如何处理这种依赖?我应该只是让每个子模块都将 log4j 作为依赖项,还是应该让更高级别的项目模块参与进来,声称它是项目依赖项?如果我有两个子模块都列出了依赖项,那么 Maven 会很聪明并且只会拉下 log4j 一次,还是每个子模块都会拉下自己的 log4j 私有副本?如果项目模块具有依赖关系,log4j 包是否会在正确的时间用于子模块?在这种情况下你会怎么做,或者你做了什么?
问问题
309 次
2 回答
2
最好的方法是使用dependencyManagement标签。
依赖管理部分是一种用于集中依赖信息的机制。当您有一组继承公共父级的项目时,可以将有关依赖项的所有信息放在公共 POM 中,并对子 POM 中的工件有更简单的引用。
总结一下效果,你把标签放在父pom中,让孩子参考它。不过,他们没有提到版本号。好处是您可以随时在父 pom 中更新 log4j 的版本,并且您的所有子 pom 都可以在不修改它们的 pom 的情况下获得新版本。
于 2013-06-11T20:49:02.357 回答
0
您可以在更高级别的项目中设置依赖项。这将涵盖项目的两个模块的依赖关系。
资料来源:这是我的团队在我们的一个项目中所做的。
于 2013-06-11T20:00:18.943 回答