【发布时间】:2012-01-05 23:41:51
【问题描述】:
我有几个 Maven 项目,每个项目都有一些共同的功能或至少共同的配置/依赖项。我将它提取到一个通用的 pom.xml 中,然后将几个方面模块化,例如持久性、与 Spring 相关的依赖项等等——所有这些都在它们自己的模块中,这些模块都继承自这个父 POM。
现在,“Common”是 1.0.0 版本,我希望从它继承“ProjectA”。我收到警告:
版本与父版本重复
我不完全理解为什么这是一个警告。我以为我可以选择从我的项目 POM 中省略版本以继承该版本。 (我是针对通用模块这样做的——比如common-spring为Spring应用添加了额外的通用依赖,而实际上ProjectA实际上继承自common-spring。)
这不就是一个选项吗?如果我将我的 ProjectA 版本更改为 1.0.1 或 2.0.0,一切都很好。
【问题讨论】:
-
对于它的价值,我小心地只从 POM 继承并且我依赖于 JAR。我声明了一个在dependencyManagement 中使用的common.version 属性,这样ProjectA 就可以继承自common-spring(继承自common)并依赖common-io(继承自common)并且它们都是相同的版本。
-
这个特殊警告是由 m2eclipse 还是 Maven 本身发出的? (您可以使用
mvn verify在命令行上检查— 可能— Maven 是否发出类似的东西。)除此之外,如果您可以发布pom.xml文件,那将真的很有帮助有问题。很难可视化您的设置中发生了什么。 -
这很公平。我会在星期三做这件事,因为我正在度假(虽然没有假期这样的事情!)。我很确定这是一个 m2e 警告。
-
@Doug 现在看来已修复,请参阅my answer below。
标签: eclipse maven pom.xml m2e parent-pom