M2E:版本是父版本的重复 – 为什么这是一个警告?

我有几个Maven项目,每个都有一些共同的function或至less共同的configuration/依赖项。 我把它解压到一个普通的pom.xml中,然后模块化了几个方面,例如持久化,Spring相关的依赖等等 – 所有这些都在它们自己的模块中,这些模块从这个父POMinheritance。

现在,“Common”是1.0.0版本,我有“ProjectA”,我想inheritance它。 我收到警告:

版本是父版本的重复

我不完全明白为什么这是一个警告。 我以为我可以select从我的项目POM中省略版本来inheritance版本。 (我为普通模块这么做 – 例如,普通弹簧为Spring应用程序添加了额外的通用依赖关系,事实上,ProjectA实际上是从普通弹簧inheritance的。)

难道不是那个 – 一个select? 如果我将我的ProjectA版本更改为1.0.1或2.0.0,一切正常。

这只是m2e试图聪明,因为版本元素(如组ID)有时可能是多余的,可以从父POMinheritance,所以从您的子POM中删除此元素将是安全的。

但有时候这不是一个多余的信息,就像父母和子项目有不同的生命周期一样,m2e应该允许这个警告被禁用。 不幸的是,还没有办法做到这一点: http : //dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

更新:正如邓肯所说,在新版本中,你可以禁用这个警告。

更新版本的m2e(自1.1以来)现在允许您禁用此警告。

首选项> Maven>警告>禁用“版本是父版本的重复”警告

原始错误报告: https : //bugs.eclipse.org/bugs/show_bug.cgi?id = 356796

如果真的让你感到不舒服,可以用一些狡猾的手段来压制警告:

 <version>${api.version}</version> <properties> <api.version>0.0.1-SNAPSHOT</api.version> </properties> 

但是你真正要做的就是把警告移到控制台输出:

 [WARNING] Some problems were encountered while building the effective model for [project] [WARNING] 'version' contains an expression but should be a constant.