可能使Maven POM元素不可继承?

时间:2013-03-05 19:43:37

标签: maven pom.xml parent-pom

我有一个父pom,它定义了我希望我的孩子poms继承的一些插件和依赖项。但是,我们使用scm元素作为发布版本的一部分,我想将父级的scm添加到pom中,但它不会被任何子pom继承(如果孩子忘记定义它并使用父级)。有没有办法将元素设置为不可继承?

1 个答案:

答案 0 :(得分:0)

我不这么认为。

但是你可以让它使用一个属性,它在父pom和依赖pom中以不同的值结束,如果它们没有自己的<scm>标记,它会在子节点失败吗?使用<profile>在父级和子级中以不同方式定义属性。

有时可行。

它有时工作的原因是子配置文件不会被子项继承,但如果父配置文件中的配置文件设置了一个属性,那么该属性将由子项继承。

因此,有时您可以使用该“功能”来完成您正在做的事情。如果您在父级中激活了个人资料,并且<scm>部分位于个人资料中,则子级不会继承。

另一种可能的解决方案是使用版本控制系统上的权限。在某些情况下,允许在子项目中签入的用户凭证不能获得在父项中签入的权限。如果子项目没有声明他们自己的<scm>,那么他们就没有权利愚弄父母<scm>部分中的回购部分。